我觉得自己像个白痴,因为我会用某种东西来对抗,这应该是非常直接的,但是我的Xcode中有一个隐藏的sabouteur。
UI是在StoryBoard中构建的。
我有一个模态视图,它包含一个上层UINavigationBar和一个UIScrollView ...在scrollview中是一些文本字段。 现在我明白了当我开始在文本字段中编辑文本时,会弹出一个键盘。没关系。我正在通过NotificationCenter跟踪那一刻。
[notificationCenter addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
当发生这种情况时,我正在调用选择器
-(void)keyboardDidShow:(NSNotification *)notification
{
... code changing the frame
}
当然,我需要调整scrollview的大小以便为键盘腾出空间,但是当我附加一个新创建的scrollview框架的CGRect“frame”值时,scrollview不会根据我的意愿调整大小,而是需要vieconntroller视图的大小减去状态栏的44像素..
我已经失去了几个小时,这让我疯了。你能帮忙吗?
答案 0 :(得分:1)
首先:为什么需要更改scrollview的框架?无论如何,键盘只显示在所有内容之上。也许更方便的方法来捕获编辑BTW是UITextFieldDelegate
协议,但我想你的方式也很好。
第二:如果要修改视图控制器的view
属性视图,则无法更改框架。默认情况下,它是全屏(减去状态栏,减去导航栏,如果有的话)。如果要动态调整视图大小,则必须是self.view
的子视图。