2015-05-15 45 views
11

İlk sekmesi UITableViewController olan basit bir sekmeli uygulamam var. Bazı verileri doldurduktan sonra, tablo görünümünün üst kısmının durum çubuğunun üst üste geldiğini fark ettim.ios UITableViewController çakışan durum çubuğu

edgesForExtendedLayout ve benzeri ayarlarla uğraşmayı denedim ancak büyülü birleştirme bulunamadı. Bunu nasıl düzelteceğini bilen var mı?

Yeniden oluşturma adımları:

  1. yeni sekmeli bir uygulama
  2. bazı verilerin
  3. Çalışma uygulama
  4. ile UITableView doldurma ilk sekmeyi UIViewController çıkarın ve UITableViewController
  5. ile değiştirin oluştur

Kurulumun birkaç ekran görüntüsü ve t o sorunu: Xcode Storyboard UITableView overlapping status bar

cevap

26

Sadece içerik etrafında bazı dolgu ekleyebilirsiniz tablo görünümünün contentInset özelliğini değiştirmek. viewDidLoad() aşağıdaki ekleyin: doğrudan üstüne atayamıyoruz, Objective-C ise

tableView.contentInset.top = 20 

, öylesine gibi yapmak:

herhangi keyfi bir değer olabilir Tabii
self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0); 

, bu durumda, durum çubuğunun yüksekliğidir.

override func viewDidLoad() { 
    super.viewDidLoad() 
    tableView.contentInset.top = UIApplication.shared.statusBarFrame.height 
} 

Ama bu kadar temiz değil: Yorum önerilen olarak

+13

Teşekkürler. Bu varsayılan değil, şaşırdım. (Apple, durum çubuğunu kontrol etmeli ve buna göre ayarlamalıdır.) 'TableView.contentInset.top = UIApplication.sharedApplication() ile yerleştim. StatusBarFrame.height' çünkü sihirli sayıları sevmiyorum çünkü :) –

+0

Ve haklısın söyledi. ;) Bunun sebebi, (iOS 7'den beri) görünümlerin tam ekran için kenarlarını varsayılan olarak uzatmasıdır. Görünümünüzü bir gezinti denetleyicisine yerleştirirseniz, gezinti çubuğunun otomatik olarak ("üst düzen kılavuzu" olarak adlandırılır) dikkate alındığını görürsünüz. –

+0

muhtemelen scrollIndicatorInsets'i de ayarlamak isteyebilirsiniz – Janneman

İlgili konular