我在通用应用中使用UITableView。它有一个带有UITextFields的自定义单元格,自定义单元格的高度为110.循环是因为我正在使用插座集合 - 应该只有一个实例在iPad中,一个在iPhone中。 iPhone不会旋转。我正在使用笔尖而不是故事板。我正在使用autorotate和autolayout。我对UITableView的自动布局约束是:
笔尖是以纵向模式设计的。当我运行iPad应用程序并且键盘以纵向扩展时,UITableView scrollToRowAtIndexPath正确地将行放在键盘上方。当我以横向模式扩展键盘时,单元格向上滚动并且方式不在视图范围内 - 我必须手动向下滚动它们以输入文本。
这是我的扩展和隐藏代码:
- (void)portKeyboardWillShow:(NSNotification *)aNotification
{ CGRect keyboardBounds = [[[aNotification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationBeginsFromCurrentState:YES];
for (int i=0; i<[self.tvPortsList count]; i++) {
//when keyboard is up, that time just bring your text filed above the keyboard
[[self.tvPortsList objectAtIndex: i] setContentInset: UIEdgeInsetsMake(0, 0, keyboardBounds.size.height, 0)];
[[self.tvPortsList objectAtIndex: i] setScrollIndicatorInsets: UIEdgeInsetsMake(0, 0, keyboardBounds.size.height, 0)];
[[self.tvPortsList objectAtIndex: i] scrollToRowAtIndexPath: self.portIndexPath
atScrollPosition:UITableViewScrollPositionBottom
animated:YES];
}
[UIView commitAnimations];
}