UITableView'umun üstüne içerik alanının boyutunu etkilemeyen bir boşluk eklemem gerekiyor. İçeriği aşağı kaydırmak veya boş bir hücre eklemek yapmak istediğim şey DEĞİL. Bunun yerine sadece bir ofset istiyorum.
Nasıl?
UITableView'umun üstüne içerik alanının boyutunu etkilemeyen bir boşluk eklemem gerekiyor. İçeriği aşağı kaydırmak veya boş bir hücre eklemek yapmak istediğim şey DEĞİL. Bunun yerine sadece bir ofset istiyorum.
Nasıl?
Yanıtlar:
Seni takip ediyor muyum emin değilim ama sanırım aynı çıkmaz yaşıyorum. Benim durumumda, ekranın üst kısmındaki ADBannerView'a biraz boşluk bırakmalıyım, bu yüzden yaptığım şey, eklediğim viewDidLoad yöntemindeydi:
[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];
aldığı değerler UIEdgeInsetsMake'dir (üst, sol, alt, sağ).
Alternatif olarak Swift ile aynı:
self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)
Swift 4.2:
self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
Tabloya "boş" bir üstbilgi görünümü ekleyebilirsiniz ... bu, tablonun ilk görünümünü bir ofsete sahip olmasını sağlar, ancak kaydırmaya başladığınızda ofset kaybolur. İstediğinden emin değilim.
Kalıcı bir ofsete ihtiyacınız varsa ve zaten bölüm üstbilgilerini kullanmıyorsanız, o zaman bölüm başlıkları için özel görünümler oluşturarak yukarıdakine benzer şekilde öteleme oluşturabilirsiniz, özellikle de yalnızca bir bölümünüz varsa, bu size kalıcı bir öteleme görünümü verebilir .
Aradığınız şey bunlardan biri gibi geliyorsa, örnek kod gönderebilirim.
Senin gibi Sesler sarmak istiyorum SİZİN etrafında bir 'Görünüm' UITableView
. Eğer bir varsa UITableViewController
IB UITableView
otomatik olarak ayarlanan olacaktır view
arasında UITableViewController
. view
Özelliği normale değiştirirsiniz UIView
ve UITableView
oraya eklersiniz ve ona bir ofset verirsiniz.
--- Düzenle --- Yazımı okudum ve biraz mantıklı olduğunu düşündüm :) Bir oluşturduğunuzda UITableViewController
bunu alırsınız (sözde kodla):
UITableViewController.view = UITableView
Bu, gerçek tablonun tüm alanı kaplayacağı ve başka görünümler bile ekleyemeyeceğiniz anlamına gelir. Yani değiştirmen gerekiyor
UITableViewController.view = UIView
ve tablonuzu buna ekleyin UIView
Bu yanıtı bununla birleştirdim: https://stackoverflow.com/a/9450345/1993937
Tablo Görünümünün içeriğin iç kısmının en üstünde görünmesini sağlamak için, görünüm başlangıçta göründüğünde tableView hafifçe aşağı kaydırılarak üstteki alan kesilmez. (18 en büyük boşluğum)
[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];