2013-04-28 22 views
8

Kodda bir UITableViewController oluşturuyorum ve onu gezinme yığınının üstüne getiriyorum. Bu tablo görünümü, sadece basit bir metin öğeleri listesini göstermek için hazırlanmıştır.UITableView contentInset, tablo görünümünün dikey olarak ek olarak yatay olarak eklenmesine olanak tanır

ben masa sol ve sağ contentInset aslında gergin var görünüyor görüntülemek yüklediğinizde ben

self.tableView.contentInset = UIEdgeInsetsMake(7.0f, 5.0f, 7.0f, 5.0f); 

Ancak benim UITableViewController init yönteminde eklemek benim tablo görünümünde, bazı contentInset eklemem gerekiyor Tablo görünümünün 10'a kadar genişliğini görüyorum. Şimdi küçük bir yatay kaydırılabilir alan görüyorum. Tablo görünümünde herhangi bir yatay kaydırma istemiyorum. ContentInset kodunu kaldırırsam, tablo görünümüm açıkça hareket eder, yani sadece dikey kaydırma sağlar. Nasıl böyle devam edebilirim ama benim contentInset'imle yerinde? ContentWebest.width öğemi viewWillAppear'da 10 azaltmayı denedim, hiçbir etkisi olmadı.

enter image description here

sayesinde --- UITableView ContentInsets scrolling content horizontally

taklidinin ben kesik çizgi ile istenilen contentInset işaretlediğiniz:

Bu bir kopya olmaktan başka kabul edilebilir cevap gibi görünüyor.

+1

Tablo görünümü çevresinde kenarlık etkisine mi ulaşmaya çalışıyorsunuz? – Wain

+0

Evet, tam olarak. Bir ekran görüntüsü ekleyeceğim ... –

+0

Sınır beni düşünmemi sağladı .. borderColor ve Genişliğini ayarlamak için tableView.layer kullanmayı denedim, ancak, tableView sınırının üzerine bindirildiğinden hücre sınırını kaybediyorum. Sahte gibi çalışmak için temiz bir yolu var mı? Okuduğunuz için teşekkürler! –

cevap

4

Yalnızca en üstteki ve en alttaki bilgileri ayarladım. Sol ve sağ iç görünüme ulaşmak ve hissetmek için, ekranın genişliğinde özel bir hücre oluşturdum. Ancak asıl hücre içeriği, özel hücrede biraz daha dar bir alt görüş ile sınırlıydı. Böylece, alt görüntünün solunda ve sağında boşluk kalıyordu. işe yarayabilir

0

Belki de scrollView'ın sekme özelliğini YES olarak ayarlamalısınız. Ve contentInset'i ayarlamayın.

+0

Bu, contentInsets'i nasıl gösterir? –

+0

Sınır oluşturmak için contentInsets kullanmamalısınız, eğer bunu yaparsanız, sınırınız görünümün dışında görüntülenecektir! – yirenjun

0

size 2 şey yapmanız gerekir gibi görünüyor:

  1. bir kap görünümüne tablo görünümü ekleyin ve tabloya yapmak frame tiner (sol ve sağ sınırları eklemek için).
  2. Yalnızca üst ve alt için contentInset'u ekleyin.
+0

Yanıt verdiğiniz için teşekkür ederiz. UITableViewController'ı alt sınıflara ayırmak zorunda kaldım, bu yüzden bir kapsayıcıyı görünümüne ekleme (tableView) çok karmaşık görünüyordu. Hücre görünümünü özelleştirerek görsel içgörülerim var. –

0

başka yolu da, yerine tableView çerçevesinin ayarlanması, hücre en contentView için çerçeveyi, böyle bir şey,

- (void) layoutSubviews 
{ 
    [super layoutSubviews]; 

    CGRect frame = self.contentView.frame; 
    frame.size.width = frame.size.width * 0.9; //90% of total width 
    frame.origin.x = self.center.x - (frame.size.width/2); //center the contentView 
    self.contentView.frame = frame; 
} 

yukarıdaki kullanarak, u herhangi bir sol ekleyebilir ayarlayabilirsiniz, yani veya hücreye ihtiyaç duyduğunuzda sağ veya sol dolgu. ve tüm alt Görünümler contentView'a eklenecek, dolayısıyla orada sorun yok.

mutlu kodlama ..!

İlgili konular