前言
我們在開發過程中會遇到這樣的需求。用戶注冊,或者做些其他操作的時候我們需要在下方加上這樣一段話:注冊代表你遵守我們的《用戶協議》,《隱私條款》這兩個是鏈接,那麼接下來我們改怎麼做呢,下面來一起看看詳細的介紹:
先上圖再說話
實現方法
如果我們按照平常的想法在label上面顯示文字,然後給label加上手勢也可以實現,那麼鏈接多的話,你就要判斷點擊手勢的區域,感覺麻煩,那麼蘋果給我們提供了很好的方法富文本NSMutableAttributedString。
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 100, 375, 100)]; textView.backgroundColor = [UIColor cyanColor]; //創建初始化文本的顏色,以及字體大小 NSDictionary *dictionary = @{NSFontAttributeName:[UIFont systemFontOfSize:17],NSForegroundColorAttributeName:[UIColor yellowColor]}; NSString * string = @" 跳轉到百度\n\n 跳轉到簡書"; //創建富文本 NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:string attributes:dictionary]; //實現文本鏈接 [attributeStr addAttribute:NSLinkAttributeName value:@"http://www.jianshu.com" range:[string rangeOfString:@"簡書"]]; [attributeStr addAttribute:NSLinkAttributeName value:@"http://www.baidu.com" range:[string rangeOfString:@"百度"]]; // textView.tintColor = [UIColor redColor];//調節文本鏈接字體的顏色 textView.attributedText = attributeStr; textView.editable = NO;
上面的方法基本事件點擊點解跳轉的功能,當然你也可以遵守textview的delegate在
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange return YES; }
代理方法裡面做你想要的操作,可是呢,有時後文字是分條顯示的 第一條,第二條,但是又不讓用文字,而是用上面的小點圖片顯示的,這就需要插入圖片了
//文本插入圖片 NSTextAttachment *attachment = [[NSTextAttachment alloc] init]; attachment.image = [UIImage imageNamed:@"red_2"]; //圖片大小不合適 可以調整 attachment.bounds = CGRectMake(0, 0, 8, 8); NSMutableAttributedString *attachmentString = (NSMutableAttributedString *)[NSAttributedString attributedStringWithAttachment:attachment]; //你想要插入圖片的位置 [textView.textStorage insertAttributedString:attachmentString atIndex:0]; [textView.textStorage insertAttributedString:attachmentString atIndex:10];
富文本裡面還有好多東西,有興趣的小伙伴可以研究一下
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對本站的支持。