我有一个 UILabel
,我想淡化字符串的结尾,那将越界。什么是更好的解决方案?
我应该计算标签的宽度,将其与字符串宽度进行比较,如果字符串宽度大于标签的宽度,我应该淡化最后两个字母吗?我到底应该怎么做?
我希望这会很容易。请写下你的解决方案。谢谢!
我更喜欢使用这种方法来计算宽度:
CGRect labelRect = [text
boundingRectWithSize:labelSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{
NSFontAttributeName : [UIFont systemFontOfSize:14]
}
context:nil];
最佳答案
swift 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
结果:
关于ios - 淡化标签文本的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24365330/