ios - CALayer 裁剪
问题描述
我有一个 CALayer 配置如下:
private func setup() {
guard let theLayer = self.layer as? CAGradientLayer else {
return;
}
theLayer.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]
theLayer.locations = [0.0, 1.0]
theLayer.startPoint = CGPoint(x: 0, y: 0)
theLayer.endPoint = CGPoint(x: 1, y: 0)
theLayer.frame = self.bounds
}
我想根据用户输入值(在下面的代码中称为“值”)将其剪辑为矩形。我该怎么做?
override func draw(_ rect: CGRect) {
// Drawing code
let frame = CGRect(x: 0, y: 0, width: rect.width, height: rect.height * (1-value))
// How to clip or mask self.layer to above frame?
}
解决方案
将该层嵌入到具有适当属性frame
并将其masksToBounds
属性设置为 的容器层中true
。
推荐阅读
- javascript - A string is separated by different delimeter . I have to reverse each wordof string with position of delimeter to be same
- javascript - 打印机打印损坏的图像图标而不是参考图像
- python - Aspen Plus:通过 Fortran 计算器执行命令行
- r - 如何将包括日期时间在内的数据帧以每日分辨率更改为半小时分辨率
- wiremock - Wiremock 独立服务器未开始使用 --print-all-network-traffic
- java - Java Scanner nextLine 问题,需要额外输入
- sql - 数字范围格式转换
- sapui5 - SAPUI5:使用扩展控件加载视图时出错
- python - 如何检查类的一个变量是否被覆盖?
- javascript - 将多个 json 对象合并到一个 json 数组中