SORU
30 Ocak 2009, Cuma


Yükseklik ayarı özel UİTableViewCells

Bazı etiketler vardır custum bir UİTableViewCell, düğmeler ve imageviews görüntülenmesi için kullanıyorum. NSString bir nesne olan hücreye bir etiket var ve dize uzunluğu değişken olabilir. Bu nedenle, ben UİTableViews hücre için sabit bir yüksekliği ayarlayın: 3* *yöntemi. Hücrenin yüksekliğini tespit edilebilir etiketleri yüksekliğiNSStrings sizeWithFont Bu yöntemi kullanarak bağlıdır. Kullanmaya çalıştım ama yanlış bir yere gideceğim gibi görünüyor. Nasıl düzeltilebilir?

İşte bu kod hücre başlatma için kullanılır.

if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier])
{
    self.selectionStyle = UITableViewCellSelectionStyleNone;
    UIImage *image = [UIImage imageNamed:@"dot.png"];
    imageView = [[UIImageView alloc] initWithImage:image];
    imageView.frame = CGRectMake(45.0,10.0,10,10);

    headingTxt = [[UILabel alloc] initWithFrame:   CGRectMake(60.0,0.0,150.0,post_hdg_ht)];
    [headingTxt setContentMode: UIViewContentModeCenter];
    headingTxt.text = postData.user_f_name;
    headingTxt.font = [UIFont boldSystemFontOfSize:13];
    headingTxt.textAlignment = UITextAlignmentLeft;
    headingTxt.textColor = [UIColor blackColor];

    dateTxt = [[UILabel alloc] initWithFrame:CGRectMake(55.0,23.0,150.0,post_date_ht)];
    dateTxt.text = postData.created_dtm;
    dateTxt.font = [UIFont italicSystemFontOfSize:11];
    dateTxt.textAlignment = UITextAlignmentLeft;
    dateTxt.textColor = [UIColor grayColor];

    NSString * text1 = postData.post_body;
    NSLog(@"text length = %d",[text1 length]);
    CGRect bounds = [UIScreen mainScreen].bounds;
    CGFloat tableViewWidth;
    CGFloat width = 0;
    tableViewWidth = bounds.size.width/2;
    width = tableViewWidth - 40; //fudge factor
    //CGSize textSize = {width, 20000.0f}; //width and height of text area
    CGSize textSize = {245.0, 20000.0f}; //width and height of text area
    CGSize size1 = [text1 sizeWithFont:[UIFont systemFontOfSize:11.0f]
                        constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];

    CGFloat ht = MAX(size1.height, 28);
    textView = [[UILabel alloc] initWithFrame:CGRectMake(55.0,42.0,245.0,ht)];
    textView.text = postData.post_body;
    textView.font = [UIFont systemFontOfSize:11];
    textView.textAlignment = UITextAlignmentLeft;
    textView.textColor = [UIColor blackColor];
    textView.lineBreakMode = UILineBreakModeWordWrap;
    textView.numberOfLines = 3;
    textView.autoresizesSubviews = YES;

    [self.contentView addSubview:imageView];
    [self.contentView addSubview:textView];
    [self.contentView addSubview:webView];
    [self.contentView addSubview:dateTxt];
    [self.contentView addSubview:headingTxt];
    [self.contentView sizeToFit];

    [imageView release];
    [textView release];
    [webView release];
    [dateTxt release];
    [headingTxt release];
}

textView = [[UILabel alloc] initWithFrame:CGRectMake(55.0,42.0,245.0,ht)]; bu yanlış olacak olan etikettir.

CEVAP
30 Ocak 2009, Cuma


UITableViewDelegate tableView:heightForRowAtIndexPath: uygulamak gerekir

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [indexPath row] * 20;
}

Muhtemelen NSString'sizeWithFont:constrainedToSize:lineBreakMode: yöntem sadece indexPath biraz saçma matematik gerçekleştirmek yerine: satır yüksekliğini hesaplamak için s) kullanmak isteyeceksiniz

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • newreleaseblitz

    newreleasebl

    13 Ocak 2010
  • Blu animations and other videos

    Blu animatio

    15 HAZİRAN 2007
  • RogerBuckChrist

    RogerBuckChr

    9 Temmuz 2011