iOS NSAttributedString字符屬性

下面對(duì)NSAttributedString各個(gè)屬性進(jìn)行列舉:
1州既、NSFontAttributeName 設(shè)置字號(hào)屬性,默認(rèn)值 12
2套像、NSForegroundColorAttributeNam 設(shè)置字體顏色聪廉,取值為 UIColor對(duì)象聂受,默認(rèn)值為黑色
3饥悴、NSBackgroundColorAttributeName 設(shè)置字體所在區(qū)域背景顏色坦喘,取值為 UIColor對(duì)象盲再,默認(rèn)值為nil, 透明色
4、NSLigatureAttributeName 設(shè)置連體屬性瓣铣,取值為NSNumber 對(duì)象(整數(shù))洲胖,0 表示沒(méi)有連體字符,1 表示使用默認(rèn)的連體字符坯沪。2 表示使用所有連體符號(hào),默認(rèn)值為 1(iOS 不支持 2)
5擒滑、NSKernAttributeName 設(shè)定字符間距腐晾,取值為 NSNumber 對(duì)象(整數(shù)),正值間距加寬丐一,負(fù)值間距變窄
6藻糖、NSStrikethroughStyleAttributeName 設(shè)置刪除線,取值為 NSNumber 對(duì)象(整數(shù))

1.枚舉常量 NSUnderlineStyle中的值
// NSUnderlineStyleNone   不設(shè)置刪除線
// NSUnderlineStyleSingle 設(shè)置刪除線為細(xì)單實(shí)線
// NSUnderlineStyleThick  設(shè)置刪除線為粗單實(shí)線
// NSUnderlineStyleDouble 設(shè)置刪除線為細(xì)雙實(shí)線
 2.**注意**:雖然使用了枚舉常量库车,但是枚舉常量的本質(zhì)仍為整數(shù)巨柒,所以同樣必須先轉(zhuǎn)化為 NSNumber 才能使用
 3.刪除線和下劃線使用相同的枚舉常量作為其屬性值
 4.目前iOS中只有上面列出的4中效果,雖然我們能夠在頭文件中發(fā)現(xiàn)其他更多的取值柠衍,但是使用后沒(méi)有任何效果
 5.另外洋满,刪除線屬性取值除了上面的4種外,其實(shí)還可以取其他整數(shù)值珍坊,有興趣的可以自行試驗(yàn)牺勾,取值為 0 - 7時(shí),效果為單實(shí)線阵漏,隨著值得增加驻民,單實(shí)線逐漸變粗,取值為 9 - 15時(shí)履怯,效果為雙實(shí)線回还,取值越大,雙實(shí)線越粗叹洲。

7柠硕、NSStrikethroughColorAttributeName 設(shè)置刪除線顏色,取值為 UIColor 對(duì)象疹味,默認(rèn)值為黑色
8仅叫、NSUnderlineStyleAttributeName 設(shè)置下劃線,取值為 NSNumber 對(duì)象(整數(shù))糙捺,枚舉常量 NSUnderlineStyle中的值诫咱,與刪除線類似
9、NSUnderlineColorAttributeName 設(shè)置下劃線顏色洪灯,取值為 UIColor 對(duì)象坎缭,默認(rèn)值為黑色

NSShadow介紹://NSShadow 對(duì)象比較簡(jiǎn)單竟痰,只有3個(gè)屬性:陰影顏色,模糊半徑和偏移
NSShadow *shadow1 = [[NSShadow alloc] init];  
shadow1.shadowOffset = CGSizeMake(3, 3);      //陰影偏移(X方向偏移和Y方向偏移)
shadow1.shadowBlurRadius = 0.5;               //模糊半徑
shadow1.shadowColor = [UIColor orangeColor];  //陰影顏色

10掏呼、NSStrokeWidthAttributeName 設(shè)置筆畫寬度坏快,取值為 NSNumber 對(duì)象(整數(shù)),負(fù)值填充效果憎夷,正值中空效果
11莽鸿、NSStrokeColorAttributeName 填充部分顏色,不是字體顏色拾给,取值為 UIColor 對(duì)象
12祥得、NSShadowAttributeName 設(shè)置陰影屬性,取值為 NSShadow 對(duì)象
13蒋得、NSTextEffectAttributeName 設(shè)置文本特殊效果级及,取值為 NSString 對(duì)象,目前只有一個(gè)可用的特效

//NSTextEffectLetterpressStyle(凸版印刷效果)额衙,適用于iOS 7.0及以上

14饮焦、NSBaselineOffsetAttributeName 設(shè)置基線偏移值,取值為 NSNumber (float),正值上偏窍侧,負(fù)值下偏
15县踢、NSObliquenessAttributeName 設(shè)置字形傾斜度,取值為 NSNumber (float),正值右傾疏之,負(fù)值左傾
16殿雪、NSExpansionAttributeName 設(shè)置文本橫向拉伸屬性,取值為 NSNumber (float),正值橫向拉伸文本锋爪,負(fù)值橫向壓縮文本
17丙曙、NSWritingDirectionAttributeName 設(shè)置文字書寫方向,從左向右書寫或者從右向左書寫

設(shè)置文字書寫方向其骄,取值為以下組合
 //@[@(NSWritingDirectionLeftToRight | NSTextWritingDirectionEmbedding)]
 //@[@(NSWritingDirectionLeftToRight | NSTextWritingDirectionOverride)]
 //@[@(NSWritingDirectionRightToLeft | NSTextWritingDirectionEmbedding)]
 //@[@(NSWritingDirectionRightToLeft | NSTextWritingDirectionOverride)]
 一直沒(méi)搞明白  NSTextWritingDirectionEmbedding 和  NSTextWritingDirectionOverride 有什么不同的效果亏镰。

18、NSVerticalGlyphFormAttributeName 設(shè)置文字排版方向拯爽,取值為 NSNumber 對(duì)象(整數(shù))索抓,0 表示橫排文本,1 表示豎排文本毯炮。在 iOS 中逼肯,總是使用橫排文本,0 以外的值都未定義
19桃煎、NSLinkAttributeName 設(shè)置鏈接屬性篮幢,點(diǎn)擊后調(diào)用瀏覽器打開指定URL地址

NSDictionary *attrDict1 = @{ NSLinkAttributeName: [NSURL URLWithString: @"http://www.baidu.com"],
NSFontAttributeName: [UIFont systemFontOfSize:20]
};

_textview.editable = NO;        //必須禁止輸入,否則點(diǎn)擊將彈出輸入鍵盤
_textview.scrollEnabled = NO;   //可選
_textview.delegate = self;      //必須設(shè)置为迈,否則代理函數(shù)不會(huì)被回調(diào)

_textview.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];
代理函數(shù):
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{
return YES;
}

20三椿、NSAttachmentAttributeName 設(shè)置文本附件,取值為NSTextAttachment對(duì)象,常用于文字圖片混排

NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
textAttachment.image = [UIImage imageNamed: @"10000.jpeg"];  //設(shè)置圖片源
textAttachment.bounds = CGRectMake(0, 0, 30, 30);          //設(shè)置圖片位置和大小(***x缺菌,y都不起效***)
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString: originStr];

[attrStr addAttribute: NSFontAttributeName value: [UIFont systemFontOfSize: 25] range: NSMakeRange(0, originStr.length)];
NSAttributedString *attrStr = [NSAttributedString attributedStringWithAttachment: textAttachment];

[attrStr insertAttributedString: attrStr atIndex: 2];  //NSTextAttachment占用一個(gè)字符長(zhǎng)度,插入后原字符串長(zhǎng)度增加1

_label.attributedText = attrStr;

21搜锰、NSParagraphStyleAttributeName 設(shè)置文本段落排版格式伴郁,取值為 NSParagraphStyle 對(duì)象

// alignment               對(duì)齊方式,取值枚舉常量 NSTextAlignment
// firstLineHeadIndent     首行縮進(jìn)蛋叼,取值 float
// headIndent              縮進(jìn)焊傅,取值 float
// tailIndent              尾部縮進(jìn),取值 float
// ineHeightMultiple       可變行高,乘因數(shù)狈涮,取值 float
// maximumLineHeight       最大行高租冠,取值 float
// minimumLineHeight       最小行高,取值 float
// lineSpacing             行距薯嗤,取值 float
// paragraphSpacing        段距,取值 float
// paragraphSpacingBefore  段首空間纤泵,取值 float
//    
// baseWritingDirection    句子方向骆姐,取值枚舉常量 NSWritingDirection
// lineBreakMode           斷行方式,取值枚舉常量 NSLineBreakMode
// hyphenationFactor       連字符屬性捏题,取值 0 - 1

NSParagraphStyleAttributeName

1玻褪、alignment 對(duì)齊方式,取值枚舉常量 NSTextAlignment

enum {
    NSTextAlignmentLeft      = 0,
    NSTextAlignmentCenter    = 1,
    NSTextAlignmentRight     = 2,
    NSTextAlignmentJustified = 3,
    NSTextAlignmentNatural   = 4,
};

2公荧、firstLineHeadIndent 首行縮進(jìn)带射,取值 float
3、headIndent 縮進(jìn)循狰,取值 float
4窟社、tailIndent 尾部縮進(jìn),取值 float绪钥,注意距離是從行首算起
5灿里、ineHeightMultiple 可變行高,乘因數(shù),取值 float程腹,大于1行高變大匣吊,小于1行高變小,實(shí)際上字體大小不會(huì)改變寸潦,改變的是行間距
6色鸳、maximumLineHeight 最大行高,取值 float见转,若其值小于默認(rèn)行高命雀,則行間距變小,若其值大于默認(rèn)行高池户,則不會(huì)引起任何變化
7咏雌、minimumLineHeight 最小行高凡怎,取值 float,若其值大于默認(rèn)行高赊抖,則行間距變大统倒,若其值小于默認(rèn)行高,則不會(huì)引起任何變化
8氛雪、lineSpacing 行距房匆,取值 float,可正可負(fù)报亩,正值增加行距浴鸿,負(fù)值減小行距
9、paragraphSpacing 段距弦追,取值 float岳链,負(fù)值無(wú)效,取0值
10劲件、paragraphSpacingBefore 段首空間掸哑,取值 float,最小取值為0
11零远、baseWritingDirection 句子方向苗分,取值枚舉常量NSWritingDirection

 enum {
        NSWritingDirectionNatural = -1,
        NSWritingDirectionLeftToRight =  0,
        NSWritingDirectionRightToLeft =  1
    };
    typedef NSInteger NSWritingDirection;

12、lineBreakMode 斷行方式牵辣,取值枚舉常量 NSLineBreakMode

enum {
        NSLineBreakByWordWrapping = 0, //自動(dòng)換行摔癣,單詞切斷
        NSLineBreakByCharWrapping,     //自動(dòng)換行,字母切斷
        NSLineBreakByClipping,         //非自動(dòng)換行纬向,不切斷
        NSLineBreakByTruncatingHead,   //非自動(dòng)換行择浊,行首切斷
        NSLineBreakByTruncatingTail,   //非自動(dòng)換行,行尾切斷
        NSLineBreakByTruncatingMiddle  //非自動(dòng)換行逾条,中間切斷
    };
    typedef NSUInteger NSLineBreakMode;

13近她、hyphenationFactor 連字符屬性,取值 0 到 1 之間膳帕,開啟斷詞功能

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粘捎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子危彩,更是在濱河造成了極大的恐慌攒磨,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汤徽,死亡現(xiàn)場(chǎng)離奇詭異娩缰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)谒府,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門拼坎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浮毯,“玉大人,你說(shuō)我怎么就攤上這事泰鸡≌叮” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵盛龄,是天一觀的道長(zhǎng)饰迹。 經(jīng)常有香客問(wèn)我,道長(zhǎng)余舶,這世上最難降的妖魔是什么啊鸭? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮匿值,結(jié)果婚禮上赠制,老公的妹妹穿的比我還像新娘。我一直安慰自己挟憔,他們只是感情好憎妙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著曲楚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪褥符。 梳的紋絲不亂的頭發(fā)上龙誊,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音喷楣,去河邊找鬼趟大。 笑死,一個(gè)胖子當(dāng)著我的面吹牛铣焊,可吹牛的內(nèi)容都是我干的逊朽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼曲伊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叽讳!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起坟募,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤岛蚤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后懈糯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涤妒,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年赚哗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了她紫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硅堆。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贿讹,靈堂內(nèi)的尸體忽然破棺而出渐逃,到底是詐尸還是另有隱情,我是刑警寧澤围详,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布朴乖,位于F島的核電站,受9級(jí)特大地震影響助赞,放射性物質(zhì)發(fā)生泄漏买羞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一雹食、第九天 我趴在偏房一處隱蔽的房頂上張望畜普。 院中可真熱鬧,春花似錦群叶、人聲如沸吃挑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舶衬。三九已至,卻和暖如春赎离,著一層夾襖步出監(jiān)牢的瞬間逛犹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工梁剔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虽画,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓荣病,卻偏偏與公主長(zhǎng)得像码撰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子个盆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 字體屬性設(shè)置示例:if(color ==nil) {color = [NSColor redColor];}NSF...
    袏扌戒指閱讀 8,429評(píng)論 0 2
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案脖岛? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,748評(píng)論 1 92
  • { 24、Sqlite數(shù)據(jù)庫(kù) 1颊亮、存儲(chǔ)大數(shù)據(jù)量鸡岗,增刪改查,常見(jiàn)管理系統(tǒng):Oracle编兄、MSSQLServer轩性、DB...
    CYC666閱讀 937評(píng)論 0 1
  • 我好像做什么事情都嫌麻煩,總是在糊弄。 我姐總說(shuō)我是思想的巨人揣苏,行動(dòng)上的矮子悯嗓。思想上的巨人估計(jì)還差些,但行動(dòng)上確實(shí)...
    wan_niao閱讀 141評(píng)論 0 0
  • 觀察者模式 首先在Android中卸察,我們往ListView添加數(shù)據(jù)后脯厨,都會(huì)調(diào)用Adapter的notifyData...
    PeterHe888閱讀 129評(píng)論 0 0