6

我不确定“淡出”是否是正确的术语,因为它似乎很多指的是动画效果,但我想要实现的可以在 iPhone Safari 应用程序的地址栏中看到。当 URL 太长而无法显示时,字符串的结尾会“淡出”而不是用“...”截断。

我认为这可以通过将 XIB 文件中的换行符设置从“Truncate Tail”更改为“Clip”,然后使用具有透明度的图像来创建效果来轻松完成。但是设置为“剪辑”似乎会剪辑在单词的末尾,而不是单词的中间,甚至是字母的中间,就像在 Safari 或 Chrome for iPhone 中看到的那样。这对我来说不太适用,它实际上给人的印象是文本是完整的,当仔细检查时,用户会注意到文本没有意义。

“淡出”不适合文本标签的字符串的最佳方法是什么?提前致谢。

4

2 回答 2

6

看看 Google Toolbox for Mac GTMFadeTruncatingLabel,它是一个可重复使用的组件,正是这样做的。

于 2012-08-28T09:10:27.050 回答
2

您还可以使用此处找到的类别的组合:(https://stackoverflow.com/a/24508153/2654425)和渐变。

并做:

if([myLabel isTruncated]){

  CAGradientLayer *l = [CAGradientLayer layer];
            l.frame = myLabel.bounds;
            l.colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor];
            l.startPoint = CGPointMake(1.f, .1f);
            l.endPoint = CGPointMake(0.95f, 1.0f);
            myLabel.layer.mask = l;



}

这适用于 iOS 7 和 iOS8。

于 2015-02-17T10:15:49.157 回答