ios 7中的uitableview滚动状态栏上方

时间:2013-10-25 07:11:08

标签: ios uitableview

我有一个具有自定义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上方状态栏的方法。

4 个答案:

答案 0 :(得分:1)

所以我几乎假设你使用的是以前的iOS 6风格状态栏。在iOS 6中,当您向上移动视图时,它会处理状态栏并且视图不会超过状态栏。但是在iOS 7中,虽然您以iOS 6风格显示状态栏,但是当您向上移动视图时,您无法让视图进入状态栏。

See this post for more detail

并查看iOS 7 UI Transition Guide

答案 1 :(得分:1)

在viewDidLoad中的viewcontroller中尝试:

self.edgesForExtendedLayout = UIRectEdgeNone;

答案 2 :(得分:1)

在我的UITableView clipsToBounds = NO上设置时,我在iOS 8上遇到了类似的问题 回到YES就可以了。

答案 3 :(得分:0)

ios 7比ios 6有+20个像素。

检查

Adds Bar showing up form Bottom in ios 7