我有一个具有自定义UITableViewCell的UITableView。它有UITextField。为了避免将UITextField隐藏在键盘下方,我编写了一个自定义方法,当文本字段位于键盘下时向上移动视图。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.25f];
[UIView setAnimationBeginsFromCurrentState:YES];
CGRect frame = self.view.frame;
if (up) {
if (frame.origin.y >= 0) {
frame.origin.y = frame.origin.y - 120;
}
} else {
if (frame.origin.y >= -150) {
frame.origin.y = frame.origin.y + 120;
}
}
[self.view setFrame:frame];
[UIView commitAnimations];
这很好,桌面视图根据我在ios 6中的要求上下移动。
但是在视图启动时ios 7中,tableview显示在状态栏上方。作为替代方案,我尝试为tableview设置内容插入并滚动到位置的行。但这不符合我的要求。请建议隐藏tableview上方状态栏的方法。
答案 0 :(得分:1)
所以我几乎假设你使用的是以前的iOS 6风格状态栏。在iOS 6中,当您向上移动视图时,它会处理状态栏并且视图不会超过状态栏。但是在iOS 7中,虽然您以iOS 6风格显示状态栏,但是当您向上移动视图时,您无法让视图进入状态栏。
答案 1 :(得分:1)
在viewDidLoad中的viewcontroller中尝试:
self.edgesForExtendedLayout = UIRectEdgeNone;
答案 2 :(得分:1)
在我的UITableView clipsToBounds = NO
上设置时,我在iOS 8上遇到了类似的问题
回到YES
就可以了。
答案 3 :(得分:0)