在我的应用程序中,我移动表格视图(以便在键盘出现时使文本字段可见)。该视图如下所示: alt text http://img34.imageshack.us/img34/5845/view2.png
这是我用来调整视图大小并将其移动的代码:
static const NSUInteger navBarHeight = 44;
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
tableView.frame = CGRectMake(0, navBarHeight, appFrame.size.width, appFrame.size.height-navBarHeight-216); //216 for the keyboard
NSIndexPath *indPath = [self getIndexPathForTextField:textField]; //get the field the view should scroll to
[tableView scrollToRowAtIndexPath:indPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
问题是,当视图向上移动时,它也会向右移动3个像素(很难看到屏幕截图中的差异,但是当动画开启时它是可见的,我用PixelStick工具测量了差异)。这是它对移动的看法: alt text http://img179.imageshack.us/img179/3310/iphonesimulator.png
我的分析显示滚动表格不会影响向右移动。
上述代码中的任何想法都会使视图向右移动?
答案 0 :(得分:0)
或许尝试更改此行:
tableView.frame = CGRectMake(0, navBarHeight, appFrame.size.width, appFrame.size.height-navBarHeight-216); //216 for the keyboard
到
tableView.frame = CGRectMake(tableView.frame.origin.x, navBarHeight, appFrame.size.width, appFrame.size.height-navBarHeight-216); //216 for the keyboard
以防万一tableview的origin.x不是0?