由於我更新了我的應用程序到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