在我的应用中,我有一个导航栏,一个标签栏,一个搜索栏,我总是显示键盘。
但是,使用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几乎可以肯定在其他一些视图坐标系统中。在同一文档中,他们提到了在两者之间转换的功能。