swift - Swift - 从 UIView 获取随机 CGPoints
问题描述
我正在尝试沿着 UIView 的“外轮廓”获取随机 CGPoints,以便能够在获得的 CGPoints 上绘制 UIBezierPath 线。例如,从我自己手动标记的红点下方获取 CGPoints。任何想法?
###Edit### 根据 Sweeper 的建议,我正在尝试将 CAShapeLayer 添加到我的自定义视图中,但是当我打印它的路径时它返回 nil。请你指出我错过了什么?
class ViewController: UIViewController {
let shapeLayer = CAShapeLayer()
override func viewDidLoad() {
super.viewDidLoad()
let view = BubbleView(frame: CGRect(x: self.view.frame.midX / 2, y: self.view.frame.midY/2, width: 150, height: 100))
view.backgroundColor = .gray
view.layer.cornerRadius = 30
self.view.addSubview(view)
}
}
class BubbleView: UIView {
var pathLayer: CAShapeLayer!
override func layoutSubviews() {
pathLayer = CAShapeLayer()
pathLayer.bounds = frame
self.layer.addSublayer(pathLayer)
print(pathLayer.path) // returns nil
}
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .clear
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
解决方案
推荐阅读
- vb.net - For 循环超出范围
- python - 有效搜索元组的一部分是否存在于元组列表中
- mariadb - 是否可以删除 MariaDB 上的提示历史记录?
- arrays - 重构代码以惯用的方式使用单个通道
- php - 循环数组并仅保留与具有限定值的特定键相关的元素
- javascript - 如何在单击按钮时触发 datetime-local 输入类型的模态?
- apache-spark - Spark Kryo 序列化
- javascript - 截断php上每个单词中的字符
- powershell - powershell cmdlet 始终输出一个表,其列可由用户选择
- html - 选择第二级 li