1 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 2 // 列寬 3 CGFloat contentWidth = self.tableView.frame.size.width; 4 // 用何種字體進行顯示 5 UIFont *font = [UIFont systemFontOfSize:13]; 6 7 // 該行要顯示的內容 8 NSString *content = [data objectAtIndex:indexPath.row]; 9 // 計算出顯示完內容需要的最小尺寸 10 CGSize size = [content sizeWithFont:font constrainedToSize:CGSizeMake(contentWidth, 1000) lineBreakMode:UILineBreakModeWordWrap]; 11 12 // 這裏返回需要的高度 13 return size.height; 14 } 15 16 // Customize the appearance of table view cells. 17 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 18 19 static NSString *CellIdentifier = @"Cell"; 20 // 列寬 21 CGFloat contentWidth = self.tableView.frame.size.width; 22 // 用何種字體進行顯示 23 UIFont *font = [UIFont systemFontOfSize:13]; 24 25 // 該行要顯示的內容 26 NSString *content = [data objectAtIndex:indexPath.row]; 27 // 計算出顯示完內容需要的最小尺寸 28 CGSize size = [content sizeWithFont:font constrainedToSize:CGSizeMake(contentWidth, 1000) lineBreakMode:UILineBreakModeWordWrap]; 29 30 // 構建顯示行 31 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 32 if (cell == nil) { 33 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 34 } 35 36 CGRect rect = [cell.textLabel textRectForBounds:cell.textLabel.frame limitedToNumberOfLines:0]; 37 // 設置顯示榘形大小 38 rect.size = size; 39 // 重置列文本區域 40 cell.textLabel.frame = rect; 41 42 cell.textLabel.text = content; 43 44 // 設置自動換行(重要) 45 cell.textLabel.numberOfLines = 0; 46 // 設置顯示字體(一定要和之前計算時使用字體一至) 47 cell.textLabel.font = font; 48 49 return cell; 50 }
ios UITableView高度自适应(转)
最新推荐文章于 2022-07-19 09:13:18 发布