Iphone 淡出不带';t拟合(而不是截断)

Iphone 淡出不带';t拟合(而不是截断),iphone,ios,text,nsstring,uilabel,Iphone,Ios,Text,Nsstring,Uilabel,我不确定使用“淡出”这个词是否正确,因为它似乎经常指动画效果,但我想实现的效果可以在iPhone Safari应用程序的地址栏中看到。当URL太长而无法显示时,字符串的结尾将“淡出”,而不是用“…”截断 我认为在XIB文件中将换行符设置从“截断尾部”更改为“剪辑”,然后使用具有透明度的图像来创建效果,可以很容易地做到这一点。但是设置为“Clip”似乎是在单词的末尾进行剪裁,而不是像Safari或Chrome for iPhone中所看到的那样,在单词的中间,甚至是字母的中间进行剪裁。这对我来说不

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

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


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

看看Google Mac工具箱,它是一个可重复使用的组件,可以做到这一点。

您还可以使用此处找到的类别:()和渐变的组合

并且做:

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和iOS 8。

如果他们为此对标签做了任何特殊处理,我会感到惊讶-更有可能是他们在叠加渐变(用代码或图像绘制)Hi smorgan,这似乎是正确的答案,但我是一个新手,当人们指给我看那些不属于苹果附带框架的东西时,我总是有点困惑。我只是创建一个类并复制代码吗?谢谢你的回答。你直接将文件添加到你的项目中。我很晚才对此发表评论,但这并不能真正解决问题string@MPG请在多行UILabel中尝试我的回答-淡出所有行,而不是尾部text@OleksiiNezhyborets这是因为此代码将其添加到框架中,而不是文本本身。