我有一个UILabel
,我想淡化字符串的末尾,这将超出范围。对此有什么更好的解决方案?
我应该计算标签的宽度,将其与字符串宽度进行比较,如果字符串宽度大于标签的宽度,我应该淡出最后两个字母吗?我到底应该怎么做?
我希望这会很容易。请写出你的解决方案。谢谢!
我更喜欢使用这种方法来计算宽度:
CGRect labelRect = [text
boundingRectWithSize:labelSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{
NSFontAttributeName : [UIFont systemFontOfSize:14]
}
context:nil];
斯威夫特 4.0 示例:
let gradient = CAGradientLayer()
gradient.frame = titleLabel.bounds
gradient.colors = [UIColor.white.cgColor, UIColor.clear.cgColor]
gradient.startPoint = CGPoint(x: 0.1, y: 0.0)
gradient.endPoint = CGPoint(x: 0.95, y: 0.0)
label.lineBreakMode = .byClipping
label.layer.mask = gradient
result:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)