视图移动了3个像素

时间:2010-05-07 14:34:46

标签: iphone iphone-sdk-3.0 user-interface

在我的应用程序中,我移动表格视图(以便在键盘出现时使文本字段可见)。该视图如下所示: 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

我的分析显示滚动表格不会影响向右移动。

上述代码中的任何想法都会使视图向右移动?

1 个答案:

答案 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?