你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發動態計算cell的高度

iOS開發動態計算cell的高度

編輯:IOS開發綜合

在iOS開發過程中,我們經常會用到UITableView, 談到UITableView當然少不了UITableViewCell.那麼有時候我們就會有疑惑,怎麼樣才能讓cell的高度根據文字的大小多少,以及照片的高度來動態設計呢?下面我們來看一下,到底怎麼做才能讓cell的高度動態變化,讓界面看起來更美觀協調一些呢?


//動態設置cell的高度

+ (CGFloat)heightForRowWithModel:(PhotoInfo *)photoInfo
{
    //1.圖片的高度
    //讓圖片等比例縮放
    //(1)獲取圖片
    UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ZZ" ofType:@"png"]];
    CGFloat imageHeight = [self heightForImage:image];
    //2.文本的高度
    CGFloat textHeight = [self heightForText:photoInfo.introduction];
    //3.返回cell 的總高度
    return kPhotoCell_TitleLabel_Height + imageHeight + textHeight + 4 * kPhotoCell_MarginBetween;
}
//單獨計算圖片的高度
+ (CGFloat)heightForImage:(UIImage *)image
{
    //(2)獲取圖片的大小
    CGSize size = image.size;
    //(3)求出縮放比例
    CGFloat scale = kPhotoCell_Width / size.width;
    CGFloat imageHeight = size.height * scale;
    return imageHeight;
}
//單獨計算文本的高度
+ (CGFloat)heightForText:(NSString *)text
{
    //設置計算文本時字體的大小,以什麼標准來計算
    NSDictionary *attrbute = @{NSFontAttributeName:[UIFont systemFontOfSize:kFontSize]};
    return [text boundingRectWithSize:CGSizeMake(kPhotoCell_Width, 1000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attrbute context:nil].size.height;
}

代碼中k開頭的都是宏定義的數值

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved