SORU
24 EYLÜL 2008, ÇARŞAMBA


Nasıl özel bir hücre olmadan bir UİTableViewCell metni kaydır I

Bu iPhone 2.0 0S. 2.1 için cevaplar herhangi bir fark tablolarla ilgili haberim yok ama çok iyi.

Özel bir hücre oluşturmadan sarmak için metin almak mümkün olacak gibi, beri UITableViewCell varsayılan UILabel içeren bir duygu. Eğer özel bir hücre oluşturun yapabilirim biliyorum, ama bunu elde etmek için çalışıyorum. - benim şimdiki yaklaşım çalışmıyor neden anlamak istiyorum.

Anladım label oluşturulur talep (beri hücre destekler metin ve görüntü erişimi, öyle değil mi oluşturmak veri görünümü kadar gerekli), o yüzden eğer benim gibi bir şey bu

cell.text = @""; // create the label
UILabel* label = (UILabel*)[[cell.contentView subviews] objectAtIndex:0];

o zaman geçerli bir etiket, ama o numberOfLines (ve lineBreakMode) ayarı çalışmıyor - ben hala tek satır yazı olsun. Görüntülenecek metin için UILabel yükseklik var - sadece heightForRowAtIndexPath yükseklik için büyük bir değer iade ediyorum.

CEVAP
25 Mayıs 2009, PAZARTESİ


Burada daha basit bir yoldur, ve bu benim için çalışıyor:

cellForRowAtIndexPath: işlev içinde. İlk kez cep oluşturun:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
    cell.textLabel.numberOfLines = 0;
    cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
}

0 etiket satır sayısı kurdum fark edeceksiniz. Bu ihtiyacı olduğunca çok sayıda çizgiler sağlar.

Bir sonraki bölümü nasıl büyük UITableViewCell olacak belirtmek için, heightForRowAtIndexPath fonksiyon şu şekilde:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellText = @"Go get some text for your cell.";
    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];
    CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
    CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

    return labelSize.height   20;
}

Benim metin etrafında küçük bir tampon sevdiğim için döndürülen hücre boyum 20 ekledim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Good Creative Academy

    Good Creativ

    19 Kasım 2009
  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010
  • Whizzpopping

    Whizzpopping

    10 Kasım 2005