我有一个iPhone应用程序。该视图由两个子项组成:一个400像素高的tableview和一个大约80像素高的视图底部的uitextview。
我正在尝试在键盘可见时向上移动textview和tableview。我调整了“主”视图的大小以使其更小。为什么它的孩子看起来也不会调整大小? 我是否需要重新调整tableview的框架,并重新调整textview的框架?我只是想知道预期的行为是什么。我是否需要使用setNeedsLayout()或setNeedsDisplay?
我期望通过缩小“主要”视图的尺寸,它的孩子们会“缩小”并受到父视图的约束。看起来textview仍然在屏幕的底部。 tableview看起来是正确的(缩小),但textview看起来不像它移动。虽然在新的缩小视图中,现在有一个白色区域,textview 应该移动到。
// Called when the UIKeyboardDidShowNotification is sent.
- (void)keyboardWasShown:(NSNotification *)aNotification {
NSLog(@"keyboard was shown");
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
//CGRect keyboardFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue];
NSLog(@"kb size is:%f",kbSize.height);
//UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
CGRect newFrame = self.view.frame;
//20 status bar height, 44 is nav bar height
newFrame.size.height = 480 -20 - 44 - kbSize.height;
self.view.frame = newFrame;
self.view.layer.borderWidth = 1.0f;
self.view.layer.borderColor = [[UIColor redColor] CGColor];
[self.view setNeedsLayout];
[self.view setNeedsDisplay];
}
答案 0 :(得分:2)
尝试使用UIScrollView。 将此控件放在scrollview中,并使用属性contentOffset向上/向下滚动。 这是非常简单的方法。
祝你好运!答案 1 :(得分:0)
使用UIScrollView获取您的内容。
收到通知后,使用键盘高度展开滚动视图的内容大小。 然后设置内容偏移量。