2013-02-09 28 views
5

Özel UITableViewCell sayfamda üç UILabels sahibim. Bazı UILabels boş olacağını olabilir ben dikey hücrede tüm boş olmayan UILabels otomatik düzeni kullanarak ortalamak nasıl (label.text == @"")Otomatik Düzen UILabels

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"EventCell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 


     NSString *key = [[keysArray objectAtIndex:indexPath.section] description]; 

     UILabel *nameLabel = (UILabel *)[cell viewWithTag:100]; 
     namelabel.text = @"Label 1"; 

     UILabel *locationLabel = (UILabel *)[cell viewWithTag:101]; 
     location.text = @"Label 2"; 

     UILabel *timeLabel = (UILabel *)[cell viewWithTag:102]; 
     timeLabel.text = @""; 

     return cell; 
} 

?

Bu üç etiket UILables biri How it looks when one of <code>UILables</code> is empty

boş Ve bu istediğim nasıl olduğunda görünüyor nasıl

This is how it looks with three labels:

ile böyle görünüyor bakmak için:

And this is how I want it to look:

+0

Hücreyi kod veya arayüz oluşturucuda mı yapıyorsunuz? Etiketler boşsa veya olmasın neden önemlidir? IB'de – jrturton

+0

. Etiketlerimin konteynırda ortalanmasını istiyorum. Bunu yapmak zor değil, ancak etiketlerden biri boş olduğunda, güzel görünmeyen iki etiket arasında bir boşluk görüyorum. – Oleg

+1

Bu çok zor olabilir, çünkü boş bir UILabel belki de genişlikten değil kesinlikle yükseklikte Bu yüzden, 'etiketlerden birinin boş olduğu satırlar boyunca bir etiket yazmak zorunda kalabilirsiniz'. – 11684

cevap

3

Bu başarmak için zor, ancak basit bir kısayol hücrenin bütün yüksekliğini doldurmak için kısıtlı üç satırlık bir metin ile, yerine tek etikete sahip olabilir. Etiket daha sonra içeriğini dikey olarak otomatik olarak ortalayacaktır.

Üç etiket yerine hücrenizde üç dizgi özelliğiniz olur ve ayarlayıcılarınız son dizeyi (yeni satırlar için \n kullanarak) oluşturur ve etiketin metnini ayarlar.

Belirtilen dizeleri kullanabildiğiniz gibi, her metin satırında farklı bir stil varsa sorun olmaz.

+0

Çok hoş bir yaklaşım! Önerdiğin gibi yapar. Ve etiketli etiketlerimin farklı stilleri olduğu için atfedilen dizeleri kullanacak! Teşekkür ederim! – Oleg

+0

Aslında birisinin programatik olarak kısıtlamalar eklemeyi/değiştirmeyi önereceğini düşünüyordum, ancak bu çözüm çok daha kolay! – Oleg

+0

Kısıtlamaları değiştirmek mümkündür, ancak bu şekilde yapmaktan kesinlikle daha zordur. Ayrıca, her ikisi de pahalı operasyonlar olan ekranda her bir hücre ekrana geldikçe, alt görünüm ekleyerek/kaldırırken veya düzeni değiştirdiğinizde kaydırma performansınızı etkileyebilir. – jrturton

İlgili konular