iOS8中的多行动态UILabel截断

iOS8中的多行动态UILabel截断,第1张

概述我在一个“动态”UITableViewCell中使用带有numberOfLines = 0和lineBreakMode = NSLineBreakByWordWrapping的UILabel.我利用AutoLayout将标签贴在顶部,底部,尾部和前缘的容器单元中.在iOS7中,标签的高度随其内容动态更新,但在iOS8中它会过早地截断(通常在1行,但有时在2行).在iOS8中,我已经确认标签的int 我在一个“动态”UItableVIEwCell中使用带有numberOflines = 0和lineBreakMode = NSlineBreakByWorDWrapPing的UILabel.我利用autoLayout将标签贴在顶部,底部,尾部和前缘的容器单元中.在iOS7中,标签的高度随其内容动态更新,但在iOS8中它会过早地截断(通常在1行,但有时在2行).在iOS8中,我已经确认标签的intrinsicContentSize按预期动态更新,但标签的框架不适合.以下是iOS7和iOS8之间的区别:

我在iOS8中已经阅读过类似的错误,但是无法实现解决方法.我已经尝试将标签的文本设置为@“”并回到@“亚伯拉罕林肯:吸血鬼猎人”(如in this question所述),但这并没有解决问题.另请注意,在iOS8中,单元格大小确实会根据标签的intrinsicContentSize增加,但无论出于何种原因,标签本身的高度都不会增加.任何建议将不胜感激.我很乐意提供更多信息.

iOS 8
 

IOS 7

解决方法 这是我的走动
UILabel的子类,并覆盖此函数.

-(CGRect)textRectForBounds:(CGRect)bounds    limitedToNumberOflines:(NSInteger)numberOflines{    CGRect rect = [super textRectForBounds:bounds                    limitedToNumberOflines:numberOflines];    float height = rect.size.height;    int hightRound = (int)roundf(height);    rect.size.height = hightRound;    return rect;}
总结

以上是内存溢出为你收集整理的iOS8中的多行/动态UILabel截断全部内容,希望文章能够帮你解决iOS8中的多行/动态UILabel截断所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存