关于NSString 截取问题

人中赤兔马中吕布 2013-07-19 12:48:10
已知一个字符串和一个UILabel,我想根据字符串自动修改UIlabel的高度,同时限定一个最大高度
条件:
1、UILabel宽度固定
2、字体信息固定

已经实现功能:
根据[NSString sizeWithFont]这个已经计算出字符串在指定宽度指定字体下需要显示的高度

问题:
当字符串足够长时,我希望UILabel不要无限的自适应高度,而是有一个最大值,如果超过这个最大值,那么截取字符串并以省列号来显示;
请教:如何获取在一个指定宽度和高度的UILabel内,以指定字体大小的情况下可以显示多少字符?如何截取?
(字符串中英文混杂)


...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 3 楼 darkdong 的回复:
我的意思是,正常情况下numberOfLines=0.当超过最大高度时, numberOfLines = 比如3.具体这个数值需要根据label的字体宽度等适应.
我现在用的土方法是:当前高度超过最大高度(200)时,用200/当前高度 得到一个比例数,然后根据这个数来算从而截取字符串。 你这个貌似也可以,我去试试
巴依老爷 2013-07-19
  • 打赏
  • 举报
回复
我的意思是,正常情况下numberOfLines=0.当超过最大高度时, numberOfLines = 比如3.具体这个数值需要根据label的字体宽度等适应.
  • 打赏
  • 举报
回复
引用 1 楼 darkdong 的回复:
label超过最大高度时,设置一下numberOfLines就能自动省略后面的了.不过这个数值可能要自己预先算好了才行,不知有没有更智能的方法.
这个我已经用掉了,设置成0了,现在自适应高度没问题,现在我先自适应最大不能超过多少时 就是我设置一个高度,截取字符串时不太对
巴依老爷 2013-07-19
  • 打赏
  • 举报
回复
label超过最大高度时,设置一下numberOfLines就能自动省略后面的了.不过这个数值可能要自己预先算好了才行,不知有没有更智能的方法.

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧