【发布时间】:2011-08-26 17:22:57
【问题描述】:
我有一个视图,其中包含从屏幕顶部到屏幕底部的文本字段。显然,底部的文本字段在弹出时会被键盘覆盖,所以我着手解决这个问题。
我在viewDidLoad方法中注册通知,然后在发送UIKeyboardDidShowNotification时,调用这个方法:
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
[scrollView scrollRectToVisible:activeField.frame animated:YES];
}
问题是根本没有滚动,更不用说滚动到可见了。我在这里错过了什么?
我所有的文本字段都在滚动视图内,等等。
提前致谢。
【问题讨论】:
-
设置 contentSize,确保宽度和高度都不为零。然后从 contentInset 高度添加或减去,直到它起作用。 scrollView.contentSize = CGSizeMake(kbSize.width, kbSize.height); scrollView.contentInset = UIEdgeInsetsMake(0, 0, kbSize.height - 250, 0); //(上、左、下、右)
标签: iphone objective-c xcode