我想在每个单元格上从左到右创建一个水平渐变
我使用CAGradientLayey创建自定义图层并将此图层添加到tableview单元格
我使用CAGradientLayey创建自定义图层并将此图层添加到tableview单元格
这是我在swift中的代码
func gradient(frame:CGRect) -> CAGradientLayer { let layer = CAGradientLayer() layer.frame = frame print(frame) layer.startPoint = CGPointMake(0,0.5) layer.endPoint = CGPointMake(1,0.5) layer.colors = [ UIColor.redColor().CGColor,UIColor.blueColor().CGColor] return layer } override func tableView(tableView: UITableView,willDisplayCell cell: UITableViewCell,forRowAtIndexPath indexPath: NSIndexPath) { cell.layer.addSublayer(gradient(cell.frame)) cell.textLabel?.textColor = UIColor(red:0,green:0.102,blue: 0.2,alpha: 1) }
但是渐变并不覆盖所有tableview单元格,它在渐变单元格和正常单元格背景颜色之间切换,似乎渐变覆盖了单元格文本.我不知道我做错了什么
有什么建议吗?谢谢
解决方法
而不是使用框架,使用单元格的边界,也在索引0处插入子图层,因此它将落后于包括您的标签在内的所有其他图层
override func tableView(tableView: UITableView,forRowAtIndexPath indexPath: NSIndexPath) { cell.layer.insertSublayer(gradient(cell.bounds),atIndex:0) cell.backgroundColor = UIColor.clearColor() cell.textLabel?.textColor = UIColor(red:0,alpha: 1) }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。