con*_*fin 8 uitableview ios4 ios
如何让第二个单元格扩展以适应文本而不是缩放文本?在iOS中是否有内置的方法,或者我必须提出一些自制的解决方案?如果你查看iOS联系人应用程序,就会有一个类似于此框的地址.我找不到如何实现这一点.

对于那些希望将来实现这一目标的人来说,这是我的解决方案的代码:
HEADER文件:
#define FONT_SIZE 22.0f
#define CELL_CONTENT_WIDTH 320.0f
#define CELL_CONTENT_MARGIN 5.0f
Run Code Online (Sandbox Code Playgroud)
实施文件:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0 && indexPath.row == 1) {
NSString *text = [atmAnnotation address];
CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"Size for address is Height:%f Width:%f",size.height,size.width);
CGFloat height = MAX(size.height, 44.0f);
return height + (CELL_CONTENT_MARGIN * 2);
}
return 44.0f;
}
Run Code Online (Sandbox Code Playgroud)
这是结果的屏幕截图:

不幸的是,您将不得不自己实现此功能.您需要使用各种方法和回调来计算行和标签的高度.如果您需要一些帮助入门,我可以修改此答案以包含一些示例代码.否则,我确定SO或Google上有一些相关问题可以帮助您入门.但总的来说:
UITableViewDelegate方法中行的高度-tableView:heightForRowAtIndexPath:.您可能需要使用NSString UIKit Addition方法来计算字符串与给定字体大小等的高度.从此委托方法返回正确的高度.numberOfLines为0,则标签将根据需要使用尽可能多的行.UITableViewDataSource实现中-tableView:cellForRowAtIndexPath:,您需要使用与以前相同的逻辑来确定标签的框架.设置所需的文本,然后更改框架,使标签足够高,几乎不适合所有文本.| 归档时间: |
|
| 查看次数: |
5861 次 |
| 最近记录: |