iOS基礎(chǔ)總結(jié)--常見文本編輯樣式的簡單總結(jié)(富文本)

八尺龍須方錦褥,已涼天氣未寒時!<頓甲>

  • 下面是和好友@by小杰整理的一些內(nèi)容
typedef NS_ENUM(NSInteger, NSLineBreakMode) {
   NSLineBreakByWordWrapping = 0, 
   NSLineBreakByCharWrapping,
   NSLineBreakByClipping, //減掉后面顯示不了的部分
   NSLineBreakByTruncatingHead,  //頭部內(nèi)容以......方式省略
   NSLineBreakByTruncatingTail,    //尾部內(nèi)容以......方式省略
   NSLineBreakByTruncatingMiddle  //中間內(nèi)容以......方式省略
} NS_ENUM_AVAILABLE_IOS(6_0);```

typedef NS_ENUM(NSInteger, NSWritingDirection) {
NSWritingDirectionNatural = -1, // Determines direction using the Unicode Bidi Algorithm rules P2 and P3
NSWritingDirectionLeftToRight = 0, // Left to right writing direction 左到右的書寫方向
NSWritingDirectionRightToLeft = 1 // Right to left writing direction 右到左的書寫方向
} NS_ENUM_AVAILABLE_IOS(6_0);```

#段落風格
// NSParagraphStyleAttributeName 段落的風格(設(shè)置首行倚评,行間距,對齊方式什么的)看自己需要什么屬性秋忙,寫什么 
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; 
paragraphStyle.lineSpacing = 10;// 字體的行間距 
paragraphStyle.firstLineHeadIndent = 20.0f;//首行縮進 
paragraphStyle.alignment = NSTextAlignmentJustified;//(兩端對齊的)文本對齊方式:(左认臊,中菠净,右,兩端對齊,自然)
paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail;//結(jié)尾部分的內(nèi)容以……方式省略 ( "...wxyz" ,"abcd..." ,"ab...yz") 
paragraphStyle.headIndent = 20;//整體縮進(首行除外) 
paragraphStyle.tailIndent = 20;// 
paragraphStyle.minimumLineHeight = 10;//最低行高 
paragraphStyle.maximumLineHeight = 20;//最大行高 
paragraphStyle.paragraphSpacing = 15;//段與段之間的間距 
paragraphStyle.paragraphSpacingBefore = 22.0f;//段首行空白空間/* Distance between the bottom of the previous paragraph (or the end of its paragraphSpacing, if any) and the top of this paragraph. */ 
paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;//從左到右的書寫方向(一共??三種)
paragraphStyle.lineHeightMultiple = 15;/* Natural line height is multiplied by this factor (if positive) before being constrained by minimum and maximum line height. */ 
paragraphStyle.hyphenationFactor = 1;//連字屬性 在iOS歼培,唯一支持的值分別為0和1

#字體大小
/*  NSFontAttributeName 字體大小  NSParagraphStyleAttributeName 段落的風格(設(shè)置首行臭杰,行間距,對齊方式什么的)  NSKernAttributeName 字間距  */
 NSDictionary *attributes = @{        
       NSFontAttributeName:[UIFont systemFontOfSize:15],             
       NSParagraphStyleAttributeName:paragraphStyle,         
       NSKernAttributeName:@(10),                       
  }; 

#簡單應(yīng)用
textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attributes];

實現(xiàn)效果:


富文本.png

實現(xiàn)代碼

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UILabel *label1;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //創(chuàng)建富文本對象
    NSMutableAttributedString *attrrbute1 = [[NSMutableAttributedString alloc] initWithString:self.label1.text];
    
    //設(shè)置字體大小
    [attrrbute1 addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:29] range:NSMakeRange(5, 4)];

    //設(shè)置字體顏色
    [attrrbute1 addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(10, 4)];
    
    //設(shè)置字體背景顏色
    [attrrbute1 addAttribute:NSBackgroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(15, 5)];
    
    //設(shè)置刪除線
    [attrrbute1 addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:1] range:NSMakeRange(31, 10)];
    
    //設(shè)置下劃線
    [attrrbute1 addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:2] range:NSMakeRange(40, 10)];
    
    //一下兩者必須結(jié)合使用
    //設(shè)置空心字顏色
    [attrrbute1 addAttribute:NSStrokeColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(50, 10)];
    //空心字邊框顏色
    [attrrbute1 addAttribute:NSStrokeWidthAttributeName value:[NSNumber numberWithInteger:1] range:NSMakeRange(50, 10)];

    //將富文本屬性添加到控件上
    self.label1.attributedText = attrrbute1;

    
}

@end```

![UILabel.png](http://upload-images.jianshu.io/upload_images/1803308-6c0cfaa74775cc1f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
```code
----- UILabel -----
  
//1 創(chuàng)建Label
     UILabel *namelabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
//2 設(shè)置屬性
     //設(shè)置文字
     namelabel.text = @"姓名";
     
     //設(shè)置背景顏色
     namelabel.backgroundColor = [UIColor whiteColor];
     
     //設(shè)置內(nèi)容對齊方式
     namelabel.textAlignment = NSTextAlignmentCenter;
     
     //設(shè)置內(nèi)容字體大小
     //namelabel.font = [UIFont systemFontOfSize:20];
     namelabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:20];
     
     //設(shè)置文字超出, 換行顯示
     namelabel.lineBreakMode = NSLineBreakByCharWrapping;
     namelabel.numberOfLines = 0;
     
     //設(shè)置Label圓角
     namelabel.layer.borderWidth = 1;
     namelabel.layer.cornerRadius = 8;
     namelabel.layer.masksToBounds = YES;

     //設(shè)置文字效果
     //陰影效果
     namelabel.shadowColor = [UIColor colorWithRed:0.203 green:0.260 blue:0.571 alpha:0.462];
     
     //陰影位置
     namelabel.shadowOffset = CGSizeMake(5, 5);// (x, y)
     
     //設(shè)置文字角度
     namelabel.transform = CGAffineTransformMakeRotation(0.2);
     
     //添加富文本
     //1 聲明富文本
     NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:@"富文本文字+ 測試換行文字文字文字文字文字文字"];
     
     //2 設(shè)置富文本內(nèi)容樣式
     //2.1 字體大小
     //參數(shù)一: 修改的屬性  參數(shù)二: 類型的具體值  參數(shù)三: 修改的區(qū)間
     [attributeStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:40] range:NSMakeRange(0, 3)];
     
     //2.2 設(shè)置空心字
     [attributeStr addAttribute:NSStrokeWidthAttributeName value:@2 range:NSMakeRange(0, 4)];
     
     //2.3 設(shè)置空心字顏色
     [attributeStr addAttribute:NSStrokeColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 4)];
     
     //3 為label指定富文本對象(需要放置在富文本樣式后面)
     namelabel.attributedText = attributeStr;
    

     //namelabel.backgroundColor = [UIColor colorWithRed:0.792 green:1.000 blue:0.814 alpha:1.000];

//3 添加到視圖
     [self.view addSubview:namelabel];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末句喜,一起剝皮案震驚了整個濱河市飒泻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌噪窘,老刑警劉巖笋庄,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異倔监,居然都是意外死亡直砂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門浩习,熙熙樓的掌柜王于貴愁眉苦臉地迎上來静暂,“玉大人,你說我怎么就攤上這事谱秽∏⒅” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵弯院,是天一觀的道長辱士。 經(jīng)常有香客問我,道長听绳,這世上最難降的妖魔是什么颂碘? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮椅挣,結(jié)果婚禮上头岔,老公的妹妹穿的比我還像新娘。我一直安慰自己鼠证,他們只是感情好峡竣,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著量九,像睡著了一般适掰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荠列,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天类浪,我揣著相機與錄音,去河邊找鬼肌似。 笑死费就,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的川队。 我是一名探鬼主播力细,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼睬澡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了眠蚂?” 一聲冷哼從身側(cè)響起煞聪,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎河狐,沒想到半個月后米绕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瑟捣,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡馋艺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了迈套。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捐祠。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖桑李,靈堂內(nèi)的尸體忽然破棺而出踱蛀,到底是詐尸還是另有隱情,我是刑警寧澤贵白,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布率拒,位于F島的核電站,受9級特大地震影響禁荒,放射性物質(zhì)發(fā)生泄漏猬膨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一呛伴、第九天 我趴在偏房一處隱蔽的房頂上張望勃痴。 院中可真熱鬧,春花似錦热康、人聲如沸沛申。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铁材。三九已至,卻和暖如春奕锌,著一層夾襖步出監(jiān)牢的瞬間著觉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工歇攻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留固惯,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓缴守,卻偏偏與公主長得像葬毫,于是被迫代替她去往敵國和親镇辉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

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