我更改了contentInset。如何强制它更新显示以反映新值?
答案 0 :(得分:3)
我发现它确实立即更新了contentInset,但它看起来并不像它,因为它调整了UITextView滚动到的位置,使得UITextView的显示不会改变。
通过滚动回到左上角,我认为您正在寻找使用新内容插图更新显示的效果:
[textView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];
答案 1 :(得分:1)
如果不是同一个问题,我也有类似的问题。
我能够让setNeedsDisplay工作,但您必须使用它并将其放在正确的视图中并以正确的顺序调用它,否则它将无效。
我有一个想要重用的视图,我改变的是UITextView和视图上的图像,具体取决于它的打开位置。我可以通过控制器上的Outlet访问标签。我可以告诉我,我的作业正在运行,因为更改后的值会在第二次返回修改后的视图时出现。我无法获得任何先前建议的工作方式,直到我在控制器视图上连接setNeedsDisplay(不是UITextView,因为我尝试了它并且它没有采取)并且我必须在我将文本更改为之前执行此操作如果我在setText之后进行调用,它就无法工作。无论如何,也许以这种方式设置它并按此顺序可能对你有用。
答案 2 :(得分:0)
尝试使用[textView setNeedsDisplay]
。
答案 3 :(得分:0)
我能想到的唯一方法是使用新属性重新启动它。听起来像是浪费。
答案 4 :(得分:0)
您还可以尝试[textView layoutIfNeeded]
或[textView layoutSubviews]
。
我把它拿回来,这个方法的文档表明:
此默认实现 方法什么都不做。
和
您不应该调用此方法 直接
答案 5 :(得分:0)
[textView setNeedsLayout]会这样做吗?