由于我更新了我的应用程序到iOS 7新的GUI我有一个问题,我无法解决。TableView滚动底层顶栏
我的应用程序包含一个可滚动的TableView。麻烦的是,TableView滚动底层顶部栏,意味着桌面不考虑顶部栏,并延伸至顶部,看起来很丑。
我尝试了“扩展边缘下最热门酒吧”删除检查,但它是相同的。
我该如何解决这个问题?
由于我更新了我的应用程序到iOS 7新的GUI我有一个问题,我无法解决。TableView滚动底层顶栏
我的应用程序包含一个可滚动的TableView。麻烦的是,TableView滚动底层顶部栏,意味着桌面不考虑顶部栏,并延伸至顶部,看起来很丑。
我尝试了“扩展边缘下最热门酒吧”删除检查,但它是相同的。
我该如何解决这个问题?
一个解决方案是:将表格视图的contentInset
和scrollIndicatorInsets
设置为顶部插入为20.表格视图仍然在状态栏下方,但是在滚动时它将完全可见。
如果您不喜欢这种解决方案,并且您希望在状态栏后面有一个永久性空白区域,则必须更改固定表格视图顶部的方式以允许使用状态栏。你如何做到这一点取决于你是否使用自动布局。如果是,请将其固定到顶部布局指南。如果您不是,则必须使用笔尖编辑器中提供的“delta”字段。
但是,如果您使用的是UITableViewController,那么您并不负责表视图的顶部;它是一个全屏视图,它是视图控制器的主视图。实际上,这是一个相当麻烦的情况。我使用了两种解决方案:
把整个事情放到UINavigationController中,以便让导航栏为我“运行干涉”。或者,将表视图控制器嵌入到自定义父视图控制器中,以便我可以定位表视图的顶部。
在UINavigationController的我创建了一个UIView的,这下状态栏但在嵌入控制器(表)的前面进入,所以表消失这一观点背后和状态栏是总在最前面。
var patch: UIView!
override func viewDidLoad() {
super.viewDidLoad()
patch = UIView(frame: CGRectMake(0, 0, view.bounds.width, 20))
patch.backgroundColor = UIColor.redColor()
self.view.addSubview(patch)
}
然后我做的时候屏幕变成景观之消失(在iOS9,状态栏自动消失景观),并在屏幕变成在人像重新出现。
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
if UIDevice.currentDevice().orientation.isLandscape.boolValue {
patch.hidden = true
} else {
patch.hidden = false
}
}
iOS 7?你知道我们现在可以使用iOS 9吗? – matt
应用程序已更新为iOS9,但自iOS7以来我有这个“bug”。 –
好的,但对我们来说,了解您实际连接的系统至关重要,因为这是决定这种行为的原因。 – matt