UITouch事件的传播

时间:2016-01-22 19:12:19

标签: swift uitouch

我的意见安排如附图所示。

enter image description here

  1. 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)
    
        }
    
  2. 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)
    
    }
    
  3. 我的问题出在WALLVIEW上。你可以注意到,我在WALLVIEW中有一个TAP GESTURE。执行程序时,点击WALLVIEW对象不会调用" WallNoteTapped:"方法。怀疑触摸事件不会传递给WALLVIEW对象"注意"。

    我无法理解为什么" WallNoteTapped:"方法未被触发。

    由于

    编辑: 我创建了UIImageView的WALLVIEW子类而不是UIView,它最终起作用了。

1 个答案:

答案 0 :(得分:0)

添加UITapGestureRecognizer取消接触其子视图。

尝试将cancelsTouchesInView设置为false。