#ios #swift
#iOS #swift
Вопрос:
Я пытаюсь создать функцию редактирования изображений в своем приложении. Я следовал этому руководству, чтобы включить возможность масштабирования, и этому руководству для части рисования.
Я реализую часть рисования и понял, что canvas
вид не обнаруживает касания, когда он накладывается на scrollView
. Текущая иерархия как таковая:
scrollView -> imageView -> canvas
Реализация на данный момент:
//At the viewController that implements the Canvas UIView
var imageView: UIImageView!
var canvas = Canvas()
override func viewDidLoad() {
super.viewDidLoad()
let image = UIImage(named: "testImage")
imageView = UIImageView(image: image)
setupCanvas()
}
func setupCanvas() {
imageView.addSubview(canvas)
canvas.backgroundColor = UIColor(white: 1, alpha: 0.4)
canvas.frame = CGRect(x: 0, y: 0, width: 3000, height: 3000)
canvas.isUserInteractionEnabled = true
}
//At the Canvas class
class Canvas: UIView {
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let point = touches.first?.location(in: self) else {return}
print("Moved", point) //Breakpoint here not called
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let point = touches.first?.location(in: self) else {return}
print("Began", point) //Breakpoint here not called
}
}
На данный момент касания, похоже, взаимодействуют с scrollView
вместо этого. Есть ли способ вместо этого обнаружить touches
в canvas
представлении?
Ответ №1:
Хорошо, элементарная ошибка. Это должно быть
scrollView.addSubview(canvas)
вместо этого.