Öykü Tablolarındaki Tablo Başlığı Görünümleri


191

StoryBoard'a (Arayüz Oluşturucu'da yaptığımız gibi) bir Tablo Üstbilgisi Görünümü (tableHeaderView) eklemenin bir yolu var mı?

Yanıtlar:


349

Bir kontrol basitçe tablo görünümünün üstüne sürükler gibi görünüyor. Bu kadar kolay olmasını beklemiyordum.

Bırakmadan Önce

Bırakmadan Önce

Bıraktıktan Sonra

Bıraktıktan Sonra


29
Ben böyle yapıldığını bulmak beni şaşırttı. Uygulamamda bunun doğru çalışması için heightForHeaderInSection: (NSInteger) bölüm kodunu silmek zorunda olduğumu fark ettim, aksi takdirde üstbilgi görünümünün üstünde ekstra boşlukla sonuçlanırdım. Ayrıca, bu başlığın tablo görünümünün üst kısmında "yapışması" için viewForHeaderInSection: (NSInteger) bölümünü uygulamak ve bu görünümü döndürmek zorunda kaldım.
ozz

13
Bu, yalnızca tabloda en az bir prototip hücreniz varsa işe yarar.
Accatyyc

4
@cdo, üstbilgiyi tablo görünümünün en üst kısmına nasıl yapıştırabileceğinizi açıklayabilir misiniz? Körü körüne uygulamayı denedim viewForHeaderInSection:ve "Aynı anda kısıtlamalar sağlanamıyor" hatası alıyorum. (Soruma buradan bakın: stackoverflow.com/questions/14554051/… )
ryanrhee

2
Teşekkürler, işe yarayacağını bilinceye kadar yapamadım, hassas sürükleme gerekli. Bunu defalarca yapmaya çalıştım ...
Dave Ross

1
Tablo üstbilgisi görünümünü ayarlamak istiyorsanız, soldaki anahattı, ilk prototip hücresinin üzerindeki tam noktaya vurmaya çalışmaktan daha kolay olan sürüklemeyi yapmak için kullanabilirsiniz. Ben fark ettim - belki bir Xcode bug (5.0) - bu sadece ben ilk önce normal hiyerarşiden görünümü taşındı zaman işe yarayacağını; Onu o sahne için anahattın en altına kadar sürükledim. Sonra, 2. adımda, tablo görünümüne taşıyabilirim.
Daniel Schneller

10

Bunu , belge anahattında (yerleşim yerine) hemen aşağıya UIView/ sürükleyerek kolayca yapabilirsiniz .UIImageViewUITableView

Belge anahattı yerine düzeni sürüklemeye çalışırsanız UITableViewCell, sinir bozucu olan üst işleme atlayacaktır!


-2

Tablo görünümünün üstüne bir görünüm sürükleyip bırakmak, en az Xcode 11'de yalnızca bir ekran boyutu için işe yaradı. Farklı ekranlarda iyi boyut vermedi.

Sadece bir görünüm oluşturdum ve bunu storyboard'daki tablo görüntüsünün arkasında bıraktım. Bunun için bir IBOutlet oluşturdum:

@IBOutlet weak var audioView: UIView!

Sonra tableview kodunda yaptım:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return audioView
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 142
}

Tüm ekran boyutlarında iyi çalıştı.


1
Soru, bölüm üstbilgisi görünümleriyle değil, tablo üstbilgisi görünümüyle ilgilidir.
R.Rincón

@R. Rincón, Bölüm başlığından nereden bahsettim? Yöntemlerdeki bölüm çerçeveden gereklidir. Bunu bilmiyorsanız, her TableView'de en az bir bölüm vardır. Bölüm 0'ı geçmeniz yeterlidir.
Badr

Bu kod, bölüm üstbilgisi olarak her bölüm için audioView değerini döndürür. Birisi bunu uygularsa, tableView.tableHeaderView sıfır olacaktır. 5 bölümleri varsa, beş bölüm üstbilgileri olacaktır. Zaten bölüm üstbilgileri varsa ve tablo üstbilgisi görünümü eklemek istiyorlarsa, bu yanıt onlara yardımcı olmaz. Bu, özellikle değinilen soruya cevap vermez tableHeaderView.
R.Rincón

Her bölüm için başlık görünümünü, yöntemin içinde bir miktar mantıkla belirtebilirsiniz. Bölümler göz önünde bulundurularak oluşturulmuş TableViews. Her zaman bölümleriniz vardır, yoksa bölüm 0 olur. Başlık bölümünü belirtmeden başlık görünümünü belirtmenin bir yöntemi yoktur.
Badr

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.