更改contentInset后强制UITextView重新显示?

时间:2011-01-07 22:48:42

标签: iphone ios uitextfield

我更改了contentInset。如何强制它更新显示以反映新值?

6 个答案:

答案 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]会这样做吗?