我不确定“淡出”是否是正确使用的术语,因为它似乎很多都是指动画效果,但是我想要实现的目标可以在iPhone的地址栏中看到Safari应用。当URL太长而无法显示时,字符串的末尾“淡出”而不是用“...”截断。
我认为可以通过在XIB文件中将“断线”设置从“截断尾部”更改为“剪辑”,然后使用透明图像来创建效果,从而轻松完成此操作。但设置为“剪辑”似乎剪切在一个单词的结尾,而不是单词的中间,或甚至是字母的中间,如Safari或Chrome for iPhone中所示。这对我来说并不适用,它实际上给人的印象是文本是完整的,当仔细检查时,用户会注意到文本没有意义。
“淡出”不适合文字标签的字符串的最佳方法是什么?提前谢谢。
答案 0 :(得分:6)
查看适用于Mac的Google工具箱GTMFadeTruncatingLabel,这是一个可重复使用的组件。
答案 1 :(得分: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上。