ios UITableView高度自适应

 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 }

转自:http://mrjeye.iteye.com/blog/1045785

你可能感兴趣的:(UITableView)