我有一个名为_containerView的UIView,在这个UIView里面我有一个名为_codeTextView的自定义UITextView。当应用程序加载时,这些视图占据整个屏幕,但是,当键盘出现时,我希望屏幕调整大小。
键盘出现时我必须遵循以下方法:
- (void)keyboardAppears:(NSNotification *)notification
{
_containerView.frame = CGRectMake(0, 0, 320, 216.0f);
_codeTextView.frame = CGRectMake(0, 30, 290, 216.0f);
}
containerView被正确调整大小,但是其中的_codeTextView没有调整大小,我真的不知道它为什么没有调整大小。我已经尝试过更改各种选项,这让我发疯:(
有人可以帮助我吗?
提前致谢!
答案 0 :(得分:8)
我刚刚用你描述的场景创建了一个项目。 setFrame适用于禁用了Autolayout的所有视图,但不支持启用Autolayout。
您是否为该View Controller启用了 Autolayout ? setFrame与autolayout不兼容。 您必须使用约束以编程方式调整视图。 (回答:Can I use setFrame and autolayout on the same view?)
您可以在此处找到一些帮助:http://nszombie.com/2010/12/08/ConstraintBasedLayout.html