如何在iOS中创建多行表格单元格?

如何在iOS中创建多行表格单元格?,第1张

概述如何让第二个单元格扩展以适应文本而不是缩放文本?在iOS中是否有这样做的内置方式或者我是否需要提出一些自制的解决方案?如果你查看iOS联系人应用程序,就会有一个类似于此框的地址.我找不到如何实现这一点. 对于那些希望将来实现这一目标的人来说,这是我的解决方案的代码: HEADER文件: #define FONT_SIZE 22.0f#define CELL_CONTENT_WIDTH 320.0 如何让第二个单元格扩展以适应文本而不是缩放文本?在iOS中是否有这样做的内置方式或者我是否需要提出一些自制的解决方案?如果你查看iOS联系人应用程序,就会有一个类似于此框的地址.我找不到如何实现这一点.

对于那些希望将来实现这一目标的人来说,这是我的解决方案的代码:

header文件:

#define Font_SIZE 22.0f#define CELL_CONTENT_WIDTH 320.0f#define CELL_CONTENT_margin 5.0f

实施文件:

- (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;}

这是结果的屏幕截图:

解决方法 不幸的是,您将不得不自己实现此功能.您需要使用各种方法和回调来计算行和标签的高度.如果您需要一些帮助入门,我可以修改此答案以包含一些示例代码.否则,我确信在SO或Google上有一些相关问题可以帮助您入门.但总的来说:

>确定UItableVIEwDelegate方法中行的高度-tableVIEw:heightForRowAtIndexPath:.您可能需要使用NSString UIKit Addition methods来计算字符串与给定字体大小等的高度.从此委托方法返回正确的高度.>确保您的标签(在IB中或以编程方式配置)设置为使用多行.如果将numberOflines设置为0,则标签将根据需要使用尽可能多的行.>在-tableVIEw:cellForRowAtIndexPath:的UItableVIEwDataSource实现中,您需要使用与以前相同的逻辑来确定标签的框架.设置所需的文本,然后更改框架,使标签足够高,几乎不适合所有文本.

总结

以上是内存溢出为你收集整理的如何在iOS中创建多行表格单元格?全部内容,希望文章能够帮你解决如何在iOS中创建多行表格单元格?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1105147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存