2 u012575301 u012575301 于 2016.02.18 16:06 提问

ios 超过一定行数的label强制在末尾加上一个...展开且可以点击成全文

如题

比如

这个UIlabel 本该显示成

    顶顶顶顶顶顶顶顶顶顶的大多数是是是是
    顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
    谁谁谁水水水水是是是是是是是是是是撒
    大多数是山东省撒打算打算打算打算的收
    水电费第三方第三方说的发送到发送到范
    水电费第三方士大夫士大夫。

但是 现在业务要求最多显示3行 如果小于3行有多少航显示多少行 超过三行的话显示如下

    顶顶顶顶顶顶顶顶顶顶的大多数是是是是
    顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
    谁谁谁水水水水是是是是是是是...展开

其中展开是蓝色 一点击...展开才变成

    顶顶顶顶顶顶顶顶顶顶的大多数是是是是
    顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
    谁谁谁水水水水是是是是是是是是是是撒
    大多数是山东省撒打算打算打算打算的收
    水电费第三方第三方说的发送到发送到范
    水电费第三方士大夫士大夫。

我现在虽然到达了效果 但是方法比较复杂 且有时候还有问题 我想想问问大家 有没有什么好办法 好思路 最好有代码可以参考 谢谢了

3个回答

qq_30970529
qq_30970529   2016.02.18 17:41

UILable有个属性NSLineBreakMode,它是个枚举值:
typedef NS_ENUM(NSInteger, NSLineBreakMode) {
NSLineBreakByWordWrapping = 0, // Wrap at word boundaries, default
NSLineBreakByCharWrapping, // Wrap at character boundaries
NSLineBreakByClipping, // Simply clip
NSLineBreakByTruncatingHead, // Truncate at head of line: "...wxyz"
NSLineBreakByTruncatingTail, // Truncate at tail of line: "abcd..."
NSLineBreakByTruncatingMiddle // Truncate middle of line: "ab...yz"
} NS_ENUM_AVAILABLE(10_0, 6_0);

DeJuion
DeJuion   2016.02.18 17:14

不知道ios具体怎么实现,但在网页中,我一般是先把所有的读出来,然后检查长度是否超过N个字符,如果超过,则显示前N个字符和一个“展开”按钮,通过点击按钮显示全部

DeJuion
DeJuion 网页上实现并无太大问题,js
接近 2 年之前 回复
u012575301
u012575301 其实 你这个应该是大部分人想到最基本的思路 但是实现起来有很多问题
接近 2 年之前 回复
Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.18 21:52

今天我也在想android里面怎么给lable添加省略号

Csdn user default icon
上传中...
上传图片
插入图片