iOS7 UITextView scrollEnabled = YES height

iOS7 UITextView scrollEnabled = YES height,第1张

概述我正在做一个测试项目,并遇到了UITextView的问题. 我动态地在文本视图中获取文本的内容大小,然后在需要时增加其高度.当高度达到我设置的阈值时,我将设置scrollEnabled = YES以启用滚动.似乎发生了奇怪的事情,如以下屏幕截图所示: 在转到新行并启用滚动之前: 输入下一个字符后,将启用滚动: 之后,再次输入另一个字符,文本视图将在启用滚动后再次恢复正常(实际上高度保持与上一个屏幕 我正在做一个测试项目,并遇到了UITextVIEw的问题.

我动态地在文本视图中获取文本的内容大小,然后在需要时增加其高度.当高度达到我设置的阈值时,我将设置scrollEnabled = YES以启用滚动.似乎发生了奇怪的事情,如以下屏幕截图所示:

在转到新行并启用滚动之前:

输入下一个字符后,将启用滚动:

之后,再次输入另一个字符,文本视图将在启用滚动后再次恢复正常(实际上高度保持与上一个屏幕截图相同,我根据内容大小更改高度,因此在启用滚动之前它变为相同的高度) :

任何人都遇到过这个问题并且能够解决它吗?如果这是一个iOS7错误,任何其他建议创建一个消息输入文本框?我想知道以前的iOS版本是否有这个问题.

编辑:

当textvIEw的scrollEnabled为YES并更改textvIEw.frame.size.height时,似乎会出现此问题,然后高度将重置为初始高度(如在Interface Builder中设置的高度).不知道这是否有助于解决这个问题.

下面显示了用于编辑文本视图高度的代码(它是一个选择器的方法,它将在收到UITextVIEwTextDIDChangeNotification时调用):

NSInteger maxinputFIElDWIDth = self.inputTextFIEld.frame.size.wIDth;CGSize maxSize = CGSizeMake(maxinputFIElDWIDth,9999);CGSize neededSize = [self.inputTextFIEld sizeThatFits:maxSize];NSInteger neededHeight = neededSize.height;if (self.inputTextFIEld.hasText){    [self.inputTextFIEld scrollRangetoVisible:NSMakeRange([self.inputTextFIEld.text length],0)];    if (neededHeight <= TEXTVIEW_MAX_HEIGHT_IN_USE && neededHeight != prevIoUsHeight)    {        prevIoUsHeight = neededHeight;        CGRect inputTextFIEldFrame = self.inputTextFIEld.frame;        inputTextFIEldFrame.size.height = neededHeight;        inputTextFIEldFrame.origin.y = TEXTVIEW_ORIGIN_Y;        self.inputTextFIEld.frame = inputTextFIEldFrame;    }    else if (neededSize.height > TEXTVIEW_MAX_HEIGHT_IN_USE)    {        if (!self.inputTextFIEld.scrollEnabled)        {            self.inputTextFIEld.scrollEnabled = YES;            CGRect inputTextFIEldFrame = self.inputTextFIEld.frame;            inputTextFIEldFrame.size.height = TEXTVIEW_MAX_HEIGHT_IN_USE;            inputTextFIEldFrame.origin.y = TEXTVIEW_ORIGIN_Y;            self.inputTextFIEld.frame = inputTextFIEldFrame;        }        else if (neededHeight != prevIoUsHeight)        {            prevIoUsHeight = neededHeight;            CGRect inputTextFIEldFrame = self.inputTextFIEld.frame;            inputTextFIEldFrame.size.height = TEXTVIEW_MAX_HEIGHT_IN_USE;            inputTextFIEldFrame.origin.y = TEXTVIEW_ORIGIN_Y;            self.inputTextFIEld.frame = inputTextFIEldFrame;        }    }}
解决方法 一年多以后,scrollEnabled仍然引发问题.我有一个类似的问题,设置scrollEnabled = true(我正在使用Swift)不会导致任何更改.

我通过在textVIEw的所有方面设置自动布局约束来解决问题.然后,就像你在这里详述的那样,我只是再次设置textVIEw.frame.我的猜测是,这会导致一些内部更新,实际上会打开滚动.我也猜测autolayout然后强制textVIEw保持在正确的高度,而不是你正在经历的崩溃.

总结

以上是内存溢出为你收集整理的iOS7 UITextView scrollEnabled = YES height全部内容,希望文章能够帮你解决iOS7 UITextView scrollEnabled = YES height所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1074889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存