iOS UITextView 內容顯示不全

來源:互聯網
上載者:User

當我們因為一些需求將UITextView當成UILabel使用(為了使用UITextView內建的複製,粘貼,選擇功能,自動識別電話,郵箱,連結等等),這時我們只需要禁用UITextView的幾個屬性就行了

textView.editable = NO;//不可編輯
textView.scrollEnabled = NO;//不可滾動

然後計算文字的大小並設定UITextView的frame,我這裡是xib裡面的textView,

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:notification.content];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
[paragraphStyle setLineSpacing:5];

NSRange range = NSMakeRange(0,notification.content.length);[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:range];[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithHex:0x333333] range:range];[attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15.0] range:range];self.textView.attributedText = nil;self.textView.attributedText = attributedString;CGSize size = [self.textView.attributedText boundingRectWithSize:CGSizeMake(ScreenWidth-2*16, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;self.textViewH.constant = size.height;

通過這種方法在UILabel上使用沒有任何問題,但是文本顯示不全,或者有的計算出來的高度比文字的實際高度要大,所以還需要再設定一些屬性:

[self.textView setContentInset:UIEdgeInsetsMake(-10, -5, -15, -5)];//設定UITextView的內邊距[self.textView setTextAlignment:NSTextAlignmentLeft];//並設定靠左對齊self.textView.layoutManager.allowsNonContiguousLayout = NO;self.textView.scrollEnabled = YES;  //  如果scrollEnabled=NO,計算出來的還是不正確的,這裡雖然設定為YES,但textView實際並不會滾動,並正確顯示出來內容
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.