2011-01-28 21 views
8

Neredeyse her şeyi denedim, ancak cell.textLabel özelliğini biraz aşağı taşıyamıyorum. Aşağıda bir ekran görüntüsü ekledim ve bulabildiğim her şeyi denedim.Bir hücrenin textLabel çerçevesini nasıl değiştirebilirim?

.frame özelliğini doğrudan değiştirmeyi denedim, "- (void) tableView: (UITableView *) tableView willDisplayCell" method "kullanarak değiştirilip değiştirilmediğini denedim. Ayrıca bir özel etiket ayırmayı denedim. özel etiket hareket olabilir, ancak orijinal TextLabel gibi ayrı satırlara gitmezdim. Ben sadece biraz aşağı resimde çok çizgi etiketi taşımak gerekir.

Herhangi bir yardım takdir!

enter image description here

cevap

16

Bunu yapmanın tek yolu, UITableViewCell alt sınıfını kullanmak vegeçersiz kılmaktır.. Bu yöntemde, [super layoutSubviews] numaralı telefonu aramak ve ardından etikete istediğiniz herhangi bir çerçeve ayarını yapmak isteyeceksiniz.

1

Dizenin başına bir \ n ekledim. Maalesef çalışacak başka bir şey alamadım. senin UITableViewCell için

21

geçersiz kılma layoutSubviews ...

- (void)layoutSubviews { 
    [super layoutSubviews]; 

    CGSize size = self.bounds.size; 
    CGRect frame = CGRectMake(4.0f, 4.0f, size.width, size.height); 
    self.textLabel.frame = frame; 
    self.textLabel.contentMode = UIViewContentModeScaleAspectFit; 
} 

veya sadece kendi UILabel nesnesi yapmak ve bir subview cell.contentView ekleyebilirsiniz.

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(4, 4, 30, 30)]; 
[cell.contentView addSubview:label]; 
[label release]; 
0
- (void)layoutSubviews { 
    [super layoutSubviews]; 

    CGSize size = self.bounds.size; 
    CGRect frame = CGRectMake(4.0f, 4.0f, size.width, size.height); 
    self.textLabel.frame = frame; 

    self.textLabel.textAlignment = NSTextAlignmentCenter; 
} 
+1

Eğer kod ne yaptığını açıklamak ve soru neden bunu cevaplar olabilir mi? – Mel

İlgili konular