0

我有一个 UITextView,里面有很多文本。当显示包含 UITextView 的子视图时,UITextView 仅在 UITextView 被触摸和滚动后出现。

UITextView 中的文本数量是否有限制?或者这是一个错误?

附件是解释这一事件的剪辑。

https://dl.dropbox.com/u/8256776/UITextView%20Bug.MOV

4

1 回答 1

2

好的,我已经调查过了,这似乎是一个很常见的问题。似乎文本视图并不觉得它必须绘制文本,但调用setNeedsDisplay并没有帮助。我不知道是否有“真正的”解决方案,但您可以通过以编程方式滚动来强制它绘制文本:

disclaimerView.contentOffset = CGPointMake(0, 1);
disclaimerView.contentOffset = CGPointMake(0, 0);

代码中不相关的事情:在您的switchView方法中,您有两个动画,一个用于菜单视图,一个用于您正在滑动到位的视图。这是不必要的,因为您可以将两个setFrame调用放在同一个动画中:

MenuView = (UIView *)[self.view viewWithTag:100];
appView = (UIView *)[self.view viewWithTag:ViewInt];
[MenuView setFrame:CGRectMake(0, 0, 320, 480)];
[appView setFrame:CGRectMake(321, 0, 320, 480)];
[UIView beginAnimations:@"move buttons" context:nil];
[UIView setAnimationDuration:.5];
[MenuView setFrame:CGRectMake(-320, 0, 320, 480)];
[appView setFrame:CGRectMake(0, 0, 320, 480)];
disclaimerView.contentOffset = CGPointMake(0, 1);
disclaimerView.contentOffset = CGPointMake(0, 0);
[UIView commitAnimations];

还有一件事(然后我会退后:))您似乎非常喜欢使用标签来检索元素。虽然它确实有效,但它不是很容易理解。您没有那么多元素,所以我只需将它们中的每一个都添加为IBOutlet有意义的名称(就像您对disclaimerView. 此外,switchView对于要移动到位的不同视图有不同的方法。这样,您就可以轻松地执行该视图可能需要的其他内容,例如 force scroll on disclaimerView

于 2012-09-01T14:53:21.993 回答