iOS,设置iPhone 4 5的桌子高度,带有导航栏,标签栏,搜索栏和键盘始终可见



在我的应用中,我有一个导航栏,一个标签栏,一个搜索栏,我总是显示键盘。

但是,使用iPhone 5的屏幕高度不同,我需要调整桌子的高度。

我不能将桌子锚定在键盘顶部,因为这显示了一个运行时间。

所以我试图动态地做到这一点,看起来我错过了搜索栏,太短了,嗯。

也许有一种更容易明显的方法?

编辑:到目前为止我的代码。

-(void)keyboardWillShow:(NSNotification*)aNotification {
int th = self.view.frame.size.height;
NSDictionary *info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] 
      CGRectValue].size;
int tableTop;
int tableHeight;
tableTop = table.frame.origin.y;
tableHeight = (th - tableTop) - kbSize.height;
[table setFrame:[General setTableBoundsByHeight:tableHeight:table]];
}
+ (CGRect)setTableBoundsByHeight:(int)lHeight:(UITableView*)tbl {
    CGRect tableFrame = tbl.frame;
    return CGRectMake(tableFrame.origin.x,
                                   tableFrame.origin.y,
                                   tableFrame.size.width,
                                    lHeight);
}

我猜您的" tableview"是您的" self.view"的一部分。如果是,则在不同的坐标系中。

将键盘添加到窗口中,并且在您的视图层次结构上添加了TableView。您将需要使用标题下所述的功能:在视图坐标系统之间转换

编辑:如果您在uikeyboardframeenduserinfokey上读取文档,则会看到它会提到矩形在屏幕坐标中,而您的uitableview几乎可以肯定在其他一些视图坐标系统中。在同一文档中,他们提到了在两者之间转换的功能。

最新更新