Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITextView设置属性文本并禁用滚动至顶部_Ios_Uitextfield - Fatal编程技术网

Ios UITextView设置属性文本并禁用滚动至顶部

Ios UITextView设置属性文本并禁用滚动至顶部,ios,uitextfield,Ios,Uitextfield,我有大约5行的uitextview,需要滚动。我还需要设置AttributeText。问题是,在我这样做之后,uitextview总是滚动回顶部 [self.txtPost setAttributedText:self.mutableAttributedString]; 我需要设置AttributedText,而无需返回顶部。我可以知道怎么办吗?不应该是这样的。确保两种情况下的字体相同,即设置普通字符串和属性字符串时 将此代码用作参考: 普通字符串- self.textview.text= @

我有大约5行的uitextview,需要滚动。我还需要设置AttributeText。问题是,在我这样做之后,uitextview总是滚动回顶部

[self.txtPost setAttributedText:self.mutableAttributedString];

我需要设置AttributedText,而无需返回顶部。我可以知道怎么办吗?

不应该是这样的。确保两种情况下的字体相同,即设置普通字符串和属性字符串时

将此代码用作参考:

普通字符串-

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];
属性字符串-

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];

不应该是这样。确保两种情况下的字体相同,即设置普通字符串和属性字符串时

将此代码用作参考:

普通字符串-

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];
属性字符串-

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];

这是由于ios 8的功能。它将始终在setText或setAttributedText之后滚动到顶部

为了防止这种情况,我需要写下这个

textView.layoutManager.allowsNonContiguousLayout = NO;

这是由于ios 8的功能。它将始终在setText或setAttributedText之后滚动到顶部

为了防止这种情况,我需要写下这个

textView.layoutManager.allowsNonContiguousLayout = NO;

我使用setAttributeText,这样输入字符串的字体就不同了。我该怎么做?在我的情况下,滚动位置保持不变,但如果字体有任何差异,则可以看到滚动位置有一点跳跃。我不认为它可以被修复,除非你手动以编程方式滚动文本视图。我使用setAttributedText,这样我的输入字符串的字体就不一样了。我该怎么做?在我的情况下,滚动位置保持不变,但如果字体有任何差异,则可以看到滚动位置有一点跳跃。我不认为它可以被修复,除非你手动滚动文本视图编程。