tttattributedlabel是一款iOS開發中常用的文本顯示控制項,它基於UILabel的基礎上擴展了富文本的一系列功能。在實際開發中,我們可以利用tttattributedlabel實現多種文本展示效果,如富文本、鏈接點擊、自定義鏈接、字體樣式、文字描邊、文字陰影等等。下面,我們從多個方面對tttattributedlabel做詳細的闡述。
一、富文本
富文本指的是在文本中加入圖片、顏色、字體、下劃線、刪除線、斜體等效果,從而實現更加豐富的文本展示效果。在tttattributedlabel中,我們可以通過NSAttributedString來設置富文本屬性。
NSString *text = @"富文本測試:字體變色,斜體,有下劃線"; NSDictionary *attributes = @{NSForegroundColorAttributeName : [UIColor redColor], NSFontAttributeName : [UIFont italicSystemFontOfSize:18], NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle) }; NSRange range = [text rangeOfString:@"字體變色"]; NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:text]; [attributedText addAttributes:attributes range:range]; self.attributedLabel.attributedText = attributedText;
在以上代碼中,我們首先定義了一段文本,並設置了一些富文本屬性,如字體顏色、斜體、下劃線。同時,我們也可以通過NSAttributedString的addAttributes:range:方法來設置添加富文本屬性的範圍。最後,我們將設置好的富文本賦值給attributedLabel,並通過tttattributedlabel來展示富文本效果。
二、鏈接點擊
在App中,經常會出現需要點擊某個鏈接跳轉到其他頁面的需求。tttattributedlabel同樣也支持對鏈接的點擊事件進行處理。當用戶點擊某個鏈接時,我們可以通過回調函數來處理相應的邏輯。
NSString *text = @"這是一段測試文字,包含一個鏈接:www.baidu.com"; self.attributedLabel.text = text; NSRange linkRange = [text rangeOfString:@"www.baidu.com"]; [self.attributedLabel addLinkToURL:[NSURL URLWithString:@"http://www.baidu.com"] withRange:linkRange]; self.attributedLabel.delegate = self;
在以上代碼中,我們首先定義了一段文本,並使用addLinkToURL:withRange:方法為該文本中的鏈接添加點擊事件,點擊鏈接時會跳轉到百度的首頁。最後,我們還需要設置attributedLabel的delegate,並在代理方法中處理鏈接點擊事件。
- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url { [[UIApplication sharedApplication] openURL:url]; }
在以上代碼中,我們定義了attributedLabel的代理方法,當鏈接被點擊時,該方法會被調用,我們可以在該方法中處理相應的邏輯,如打開一個網頁、跳轉到其他頁面等等。
三、自定義鏈接樣式
在鏈接中,我們可以為它們設置不同的樣式,例如顏色、下劃線、字體等。在tttattributedlabel中,我們可以利用擴展類TTTAttributedLabelLink來對鏈接樣式進行自定義。
NSString *text = @"這是一段測試文字,包含一個自定義鏈接:自定義鏈接"; self.attributedLabel.text = text; NSRange range = [text rangeOfString:@"自定義鏈接"]; TTTAttributedLabelLink *customLink = [TTTAttributedLabelLink linkWithTextAttributes:@{NSForegroundColorAttributeName:[UIColor blueColor]} activeTextAttributes:@{NSForegroundColorAttributeName:[UIColor greenColor]} inactiveTextAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor]} linkTapBlock:^(TTTAttributedLabel * _Nonnull label, TTTAttributedLabelLink * _Nonnull link) { NSLog(@"點擊了自定義鏈接"); }]; [self.attributedLabel addLink:customLink range:range]; self.attributedLabel.delegate = self;
在以上代碼中,我們首先定義了一段文本,並使用addLink:range:方法為該文本中的鏈接添加自定義樣式,如自定義的主題色、活動狀態的顏色、非活動狀態的顏色。在linkTapBlock回調中,我們可以處理相應的邏輯。
四、字體樣式
在文本中,我們還可以設置字體的樣式,如文字大小、字體加粗、字體斜體等。在tttattributedlabel中,我們可以通過NSFontAttributeName來設置字體樣式。
NSString *text = @"字體樣式測試:文字變大,加粗,傾斜"; NSDictionary *attributes = @{NSFontAttributeName : [UIFont systemFontOfSize:24 weight:UIFontWeightBold], NSKernAttributeName : @(4), NSObliquenessAttributeName : @(0.5) }; NSRange range = [text rangeOfString:@"字體樣式測試"]; NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:text]; [attributedText addAttributes:attributes range:range]; self.attributedLabel.attributedText = attributedText;
在以上代碼中,我們首先定義了一段文本,並設置了一些字體樣式,如字體大小、加粗、傾斜。通過NSFontAttributeName、NSKernAttributeName和NSObliquenessAttributeName等屬性來為文本設置字體樣式。最後,我們將設置好的富文本賦值給attributedLabel,並通過tttattributedlabel來展示字體樣式效果。
五、文字描邊和陰影
在文本中,我們還可以為文字添加描邊效果,以及設置文字的陰影。
NSString *text = @"這是一段測試文字,添加文字描邊和陰影"; NSShadow *shadow = [[NSShadow alloc] init]; shadow.shadowColor = [UIColor grayColor]; shadow.shadowBlurRadius = 4.0f; shadow.shadowOffset = CGSizeMake(2, 2); NSDictionary *attributes = @{NSStrokeColorAttributeName:[UIColor whiteColor], NSStrokeWidthAttributeName:@(-2), NSShadowAttributeName:shadow }; NSRange range = [text rangeOfString:@"添加文字描邊和陰影"]; NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:text]; [attributedText addAttributes:attributes range:range]; self.attributedLabel.attributedText = attributedText;
在以上代碼中,我們首先定義了一段文本,並設置了文字的描邊效果以及陰影屬性。通過NSStrokeColorAttributeName、NSStrokeWidthAttributeName和NSShadowAttributeName等屬性來為文本添加描邊和陰影效果。最後,我們將設置好的富文本賦值給attributedLabel,並通過tttattributedlabel來展示文字描邊和陰影效果。
原創文章,作者:AOPFB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370442.html