iOS 5 SDK UITextView限制/错误?

时间:2012-08-30 01:24:17

标签: ios4 uitextview ios5 uitextviewdelegate

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

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

附件是解释此事件的剪辑。

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

1 个答案:

答案 0 :(得分: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方法。这样,您可以轻松执行仅针对该视图可能需要的其他内容,例如disclaimerView上的强制滚动。