我的意见安排如附图所示。
MAINVIEW是UISCROLLVIEW的附加子视图
class NotewallController:UIViewController, UIScrollViewDelegate {
var bgImage:UIImageView?
var bgScrollView:UIScrollView?
var masterView:UIView?
override func viewDidLoad() {
self.bgScrollView = UIScrollView(frame: self.view.bounds)
self.bgScrollView!.contentSize = CGSizeMake(1000, 1000)
self.bgScrollView!.delegate = self
self.bgScrollView!.minimumZoomScale = 1.0
self.bgScrollView!.maximumZoomScale = 4.0
self.view.addSubview(self.bgScrollView!)
masterView = UIView(frame: CGRectMake(0,0,1000,1000))
masterView!.backgroundColor = UIColor.clearColor()
masterView!.userInteractionEnabled = true
bgScrollView!.addSubview(masterView!)
let note = WALLVIEW(frame: CGRectMake(20, 20, 30, 30))
self.masterView!.addSubview(note)
}
WALLVIEW是UIVIEW的子类
类WallView:UIView {
override init(frame: CGRect) {
super.init(frame: frame)
let bgImageView = UIImageView(frame: frame)
bgImageView.image = UIImage(named: "stickynote.png")
bgImageView.userInteractionEnabled = true
self.addSubview(bgImageView)
let tap = UITapGestureRecognizer(target: self, action: "WallNoteTapped:")
bgImageView.addGestureRecognizer(tap)
}
我的问题出在WALLVIEW上。你可以注意到,我在WALLVIEW中有一个TAP GESTURE。执行程序时,点击WALLVIEW对象不会调用" WallNoteTapped:"方法。怀疑触摸事件不会传递给WALLVIEW对象"注意"。
我无法理解为什么" WallNoteTapped:"方法未被触发。
由于
编辑: 我创建了UIImageView的WALLVIEW子类而不是UIView,它最终起作用了。
答案 0 :(得分:0)
添加UITapGestureRecognizer取消接触其子视图。
尝试将cancelsTouchesInView设置为false。