我有大约5行的uitextview,需要滚动。我还需要setAttributedText。问题是,在我这样做之后,uitextview总是滚动回顶部。
[self.txtPost setAttributedText:self.mutableAttributedString];
我需要setAttributedText而不滚动回顶部。我可以知道该怎么做吗?
答案 0 :(得分:4)
这是由于ios 8功能。它将始终在setText或setAttributedText之后滚动到顶部。
为了防止这种情况,我需要写这个。
textView.layoutManager.allowsNonContiguousLayout = NO;
答案 1 :(得分:0)
不应该是这种情况。确保两种情况下的字体相同,即在设置普通字符串和属性字符串时。
使用此代码作为参考:
普通字符串 -
self.textview.text= @"Lorem ipsum dolor sit er elit lamet, attributed string eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, attributed string quis nostrud exercitation ullamco laboris nisi attributed string ut aliquip ex ea commodo consequat.";
self.textview.font= [UIFont systemFontOfSize:15.0f];
归属字符串 -
NSMutableAttributedString* string= [[NSMutableAttributedString alloc] initWithString:@"Lorem ipsum dolor sit er elit lamet, attributed string eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, attributed string quis nostrud exercitation ullamco laboris nisi attributed string ut aliquip ex ea commodo consequat."];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,50)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(50,100)];
[string addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15.0f] range:NSMakeRange(0,string.length)];
[self.textview setAttributedText:string];