先记着个属性吧,知道就行:uitableview有个属性值 separatorStyle 可用来去掉cell间的白线:
tableView.separatorStyle =UITableViewCellSeparatorStyleNone; //总共有三个值,可以试下有空
转载自:http://aclyyx.iteye.com/blog/1634726
啰嗦几句:
这里主要是通过NSString的sizeWithFont:constrainedToSize:lineBreakMode:方法实现。
该方法用于计算显示完整内容所需要的最小尺寸。
下面是摘抄的说明
NSString的函数sizeWithFont:constrainedToSize:lineBreakMode:
API文档解释:若字符串以规定的约束条件进行描绘,则返回实际的大小。
用途:返回以指定字体进行描绘时,字符串所占据的实际大小。
运行效果:
程序解析:
该部分主要摘抄自《UITableView高度自適應》,稍稍做了改动。
- - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- static NSString * CellIdentifier = @"MessageViewControllerCell";
- int row = [indexPath row];
- UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
- if (cell == nil) {
- // 用何種字體進行顯示
- UIFont *font = [UIFont systemFontOfSize:14];
- // 該行要顯示的內容
- NSString *content = [_arr objectAtIndex:row];
- // 实例化单元格对象
- cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
- // 设置显示文字
- cell.textLabel.text = content;
- // 設置自動換行(重要)
- cell.textLabel.numberOfLines = 0;
- // 設置顯示字體(一定要和之前計算時使用字體一至)
- cell.textLabel.font = font;
- }
- return cell;
- }
- - (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- int row = [indexPath row];
- // 列寬
- CGFloat contentWidth = self.tv.frame.size.width;
- // 用何種字體進行顯示
- UIFont *font = [UIFont systemFontOfSize:14];
- // 該行要顯示的內容
- NSString *content = [_arr objectAtIndex:row];
- // 計算出顯示完內容需要的最小尺寸
- CGSize size = [content sizeWithFont:font constrainedToSize:CGSizeMake(contentWidth, 1000.0f) lineBreakMode:UILineBreakModeWordWrap];
- // 這裏返回需要的高度
- return size.height+20;
- }
参考链接:
IOS开发之常用系统函数收集:http://fulerbakesi.iteye.com/blog/1592224
UITableView高度自適應:http://mrjeye.iteye.com/blog/1045785