亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS開發設置字體的相關技巧

2020-02-19 15:54:05
字體:
來源:轉載
供稿:網友

在iOS的日常開發中,系統提供的控件常常不能滿足業務功能,此時我們需要實現一些自定義控件,下文是iOS開發設置字體的相關技巧,跟著武林技術頻道小編的步伐來了解一下吧!

一、初始化


UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 44)];
????
[self.view addSubview:myLabel];


二、設置文字

?

1、設置默認文本


NSString *text = @"標簽文本";
myLabel.text = text;


效果:

?

?

?

20161892441299.png (87×39)

2、設置標簽文本(此屬性是iOS6.0之后才出現,如若不是必要,不建議使用此屬性)


NSString *text = @"其實沒什么";
????
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:text];
????
[attributeString setAttributes:@{NSForegroundColorAttributeName : [UIColor redColor],?? NSFontAttributeName : [UIFont systemFontOfSize:17]} range:NSMakeRange(2, 1)];
????
myLabel.attributedText = attributeString;


效果:

?

?

?

20161892517640.png (98×39)

關鍵字標紅的效果


NSString *keyword = @"開源";
NSString *result = @"開源中國社區";
?
// 設置標簽文字
NSMutableAttributedString *attrituteString = [[NSMutableAttributedString alloc] initWithString:result];
?
// 獲取標紅的位置和長度
NSRange range = [result rangeOfString:keyword];
?
// 設置標簽文字的屬性
[attrituteString setAttributes:@{NSForegroundColorAttributeName : [UIColor redColor],?? NSFontAttributeName : [UIFont systemFontOfSize:17]} range:range];
?
// 顯示在Label上
label.attributedText = attrituteString;


3、設置字體,如果是使用②中的文本,那在設置AttributeString的屬性時已經設置過Font了和textColor了,直接使用①設置文本時設置文本時,設置字體方法

?

?


myLabel.font = [UIFont systemFontOfSize:13];


4、設置顏色

?

?


myLabel.textColor = [UIColor blueColor];


5、設置對齊方式

?

?


myLabel.textAlignment = NSTextAlignmentCenter;//居中

?

NSTextAlignmentLeft //左對齊
NSTextAlignmentCenter //居中
NSTextAlignmentRight? //右對齊
NSTextAlignmentJustified//最后一行自然對齊
NSTextAlignmentNatural //默認對齊腳本


NSTextAlignmentJustified和 NSTextAlignmentNatural用的時候會報錯,程序崩潰,暫時不知道什么時候可以使用,希望知道的指教一下,感激不盡。
5、文字剪裁方式

?

?


NSLineBreakByWordWrapping = 0,//以空格為邊界,保留單詞
NSLineBreakByCharWrapping,??? //保留整個字符
NSLineBreakByClipping,??????? //簡單剪裁,到邊界為止
NSLineBreakByTruncatingHead,? //按照"……文字"顯示
NSLineBreakByTruncatingTail,? //按照"文字……文字"顯示
NSLineBreakByTruncatingMiddle //按照"文字……"顯示

?

myLabel.lineBreakMode = NSLineBreakByTruncatingHead;


7、設置Label enabled屬性
如果設置為No,則文字顏色會變暗,表明其是不可用的,默認值為YES。

?

?


myLabel.enabled = NO;


三、匹配Label上的文字
1、是否根據文本寬度改變字體大小

?

?


myLabel.adjustsFontSizeToFitWidth = YES;
//假設文字內容為@"曾在月光之下望煙花,曾共看夕陽漸降下",Label長度為200,則一行顯示不下,若設置此屬性為YES,則會降低字體大小,以顯示全部內容。


前后對比:

?

?

?

20161892537044.png (199×25)

20161892553786.png (197×27)

2、改變字母之間的間距來適應label大小


//當這個屬性是YES,標簽可能改變標簽文本的字母間距,以使該文本更適合標簽的邊界內。此屬性的字符串,而不管當前行的行的裁剪模式。該屬性的默認值是NO。
myLabel.adjustsLetterSpacingToFitWidth = NO;
?
//個人使用了一下,沒發現有什么區別,不知道具體是什么時候發揮作用。


3、設置對齊基線

?

?


myLabel.adjustsFontSizeToFitWidth = YES;//調整基線位置需將此屬性設置為YES

?

myLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;


此屬性有三個值可選

?

?


UIBaselineAdjustmentAlignBaselines //文本最上端與Label中線對齊,默認值
UIBaselineAdjustmentAlignCenters?? //文本中線與Label中線對齊
UIBaselineAdjustmentNone?????????? //文本最下端與Label中線對齊


4、最小字體大小,當字體小于這個最小值時無效,顯示此屬性值
iOS6.0之前:minimumFontSize

?

iOS6.0之后:minimumScaleFactor


myLabel.minimumScaleFactor = 10.0;//默認值為0,為當前字體大小


5、行數

?

?


myLabel.numberOfLines = 2;//Label行數


6、高亮

?

?


myLabel.highlighted = YES;//是否高亮
myLabel.highlightedTextColor = [UIColor redColor];//高亮顏色;此屬性在設置按鈕的titleLabel時,無論highlighted是YES還是NO,在按鈕按下時標題都顯示此高亮顏色


7、陰影

?

?


myLabel.shadowColor = [UIColor grayColor];//陰影顏色,默認為nil
myLabel.shadowOffset = CGSizeMake(1, 1);//陰影的偏移點


四、Label位置
1、計算UIlabel 隨字體多行后的高度

?

?


CGRect result,bounds;
bounds = CGRectMake(0, 0,200, 300);
heightLabel = [myLabel textRectForBounds:bounds limitedToNumberOfLines:20];//計算20行后的Label的Frame
NSLog(@"%f",heightLabel.size.height);


2、繪制text到指定區域

?

?


- (void)drawTextInRect:(CGRect)rect
//需要重載此方法,然后由子類調用,重寫時調用super可以按默認圖形屬性繪制,若自己完全重寫繪制函數,就不用調用super了

?

PS:關于字體名字的問題
在iOS下使用自定義字體比較蛋疼的就是名字不知道是什么,大部分字體可以在打開字體冊就可以看到,如正常的XXX-Regular,但有時候名字并不是這個,有可能是XXX而已,還有可能是XXXItalic(而不是XXX-Italic)。名字錯了,建立的字體肯定是空的。

那怎么辦呢?

有辦法的,有一段代碼可以把當前所有的字體名字輸出來。

如:

1.把XXX字體加入到resouce;

2.Info.plist的Fonts provided by application里面加入字體文件名

3.運行下面代碼


??? NSArray *familyNames = [UIFont familyNames];
??? for( NSString *familyName in familyNames ){
??????? printf( "Family: %s /n", [familyName UTF8String] );
??????? NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
??????? for( NSString *fontName in fontNames ){
??????????? printf( "/tFont: %s /n", [fontName UTF8String] );
??????? }
??? }


4.找到你的字體XXX,如下,Font:后面的就是我們要的字體名字

?

Family: Courier New   Font: CourierNewPSMT   Font: CourierNewPS-BoldMT   Font: CourierNewPS-ItalicMT   Font: CourierNewPS-BoldItalicMT Family: Oriya Sangam MN   Font: OriyaSangamMN   Font: OriyaSangamMN-Bold

5.自然是使用,如


UIFont *font_regular = [UIFont fontWithName:@"CourierNewPS-ItalicMT" size:84];

上文是iOS開發設置字體的相關技巧,大家都了解了嗎?更多的相關內容及資訊盡在武林技術頻道!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频区| 亚洲黄页视频免费观看| 久久国产精品偷| 欧美怡红院视频一区二区三区| 国产精品久久久久久久久借妻| 国产精品成人v| 亚洲最大福利网| 最近2019中文免费高清视频观看www99| 日韩精品视频中文在线观看| 亚洲最大在线视频| 国产成人精品综合久久久| 亚洲美女久久久| 欧美激情视频一区| 国产精品久久久久国产a级| 日韩欧美国产中文字幕| 91精品国产高清自在线看超| 欧美日韩国产中字| 少妇高潮 亚洲精品| 国产日本欧美在线观看| 91亚洲精品一区| 日韩性xxxx爱| 国产亚洲人成a一在线v站| 国产手机视频精品| 亚洲精品大尺度| 国产精品福利久久久| 日韩成人黄色av| 亚洲毛片一区二区| 久久夜色精品国产欧美乱| 国产精品美女久久久免费| 久久99国产精品自在自在app| 日韩电视剧在线观看免费网站| 欧美在线视频一区| 欧美天天综合色影久久精品| 欧美在线影院在线视频| 国产精品无码专区在线观看| 日韩美女福利视频| 亚洲精品电影在线观看| 欧美中文字幕视频在线观看| 国产精品久久久91| 欧美中文字幕精品| 欧美日韩视频在线| 亚洲精品在线不卡| 九色精品美女在线| 日韩精品视频免费专区在线播放| 亚洲九九九在线观看| 欧美性猛交xxxx乱大交3| 日韩最新av在线| 欧美最猛性xxxxx(亚洲精品)| 日韩av电影免费观看高清| 国产精品美女在线观看| 亚洲欧洲美洲在线综合| 欧美性猛交xxx| 97视频在线观看视频免费视频| 亚洲精品自拍第一页| 精品久久久中文| 久久久久久12| 97热在线精品视频在线观看| 国产综合色香蕉精品| 欧美亚洲免费电影| 国产成人一区二区在线| 精品久久久久久电影| 久久亚洲国产精品成人av秋霞| 91精品国产沙发| 欧美一级淫片aaaaaaa视频| 欧美视频一区二区三区…| 亚洲热线99精品视频| 国产综合在线观看视频| 成人在线小视频| 色综合久久久久久中文网| 尤物yw午夜国产精品视频| 国产精品主播视频| 国内精品免费午夜毛片| 亚洲国产精品一区二区久| 欧美二区在线播放| 亚洲精品99久久久久中文字幕| 亚洲成人网在线观看| 日韩免费在线观看视频| 国产一区二区三区久久精品| 亚洲嫩模很污视频| 欧美日韩亚洲精品一区二区三区| 欧美成人全部免费| 成人免费高清完整版在线观看| 日韩美女视频中文字幕| 亚洲欧美中文字幕在线一区| 欧美裸体xxxx极品少妇软件| 亚洲色图国产精品| 欧美极品美女电影一区| 91av在线播放| 91爱爱小视频k| 国产精品美女网站| 久久精品亚洲一区| 国产一区二区三区丝袜| 欧美成人性生活| 国产丝袜一区视频在线观看| 欧美电影在线观看完整版| 日韩激情av在线免费观看| 欧美日韩精品在线观看| 亚洲欧美激情视频| 色婷婷综合成人av| 伊人久久精品视频| 中文字幕成人在线| 国产一区二区三区精品久久久| 欧美国产亚洲视频| 欧美裸体xxxx| 久久天天躁狠狠躁夜夜躁2014| 亚洲va码欧洲m码| 成人xxxx视频| 欧美有码在线观看视频| 亚洲成人aaa| 中文.日本.精品| 欧美一级在线亚洲天堂| 欧洲美女免费图片一区| 91免费精品视频| 国产精品成人一区二区三区吃奶| 亚洲精品成人免费| 亚洲黄色www网站| 91理论片午午论夜理片久久| 91免费综合在线| 欧美日韩国产中文精品字幕自在自线| 伊人青青综合网站| 亚洲一区二区三区视频| 久久人人爽人人爽人人片av高请| 欧美疯狂做受xxxx高潮| 爽爽爽爽爽爽爽成人免费观看| 91高清免费视频| 久久精品视频网站| 久久精品精品电影网| 欧美高清在线观看| 日韩中文娱乐网| 欧美日韩国产一区中文午夜| 中文字幕视频一区二区在线有码| 91av在线免费观看| 国模精品视频一区二区三区| 国产精品美女主播在线观看纯欲| 久久久久久网站| 91精品国产综合久久男男| 亚洲女人天堂视频| 国产日韩欧美成人| 亚洲视频777| 亚洲国产私拍精品国模在线观看| 国产精品一区二区性色av| 68精品国产免费久久久久久婷婷| 国产99久久精品一区二区 夜夜躁日日躁| 91欧美精品午夜性色福利在线| 毛片精品免费在线观看| 亚洲护士老师的毛茸茸最新章节| 亚洲国产精久久久久久| 亚洲电影在线观看| 岛国视频午夜一区免费在线观看| 亚洲国产精品高清久久久| 国产精品亚洲片夜色在线| 中文字幕一精品亚洲无线一区| 欧美在线视频在线播放完整版免费观看| 影音先锋欧美精品| 精品久久久久久久久国产字幕| 精品一区电影国产| 欧美成人免费播放| 8x海外华人永久免费日韩内陆视频| 黑人巨大精品欧美一区二区免费| 亚洲精品mp4| 久久免费高清视频| 久久亚洲一区二区三区四区五区高| 2019中文字幕全在线观看| 亚洲一区二区久久|