iOS開發動態計算cell的高度
在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開頭的都是宏定義的數值