touchesBegan没有在UIView子类中调用

时间:2015-05-25 17:20:48

标签: ios swift touchesbegan

我知道已经有一些问题,但我找不到解决方案。 有一个非常简单的代码可以在我的一个项目上正常工作,但不能在另一个项目上工作:

以下是UIView的子类代码。

import UIKit

class test : UIView {

    init(frame: CGRect, color: UIColor) {
        super.init(frame: frame)
        self.backgroundColor = color
        self.userInteractionEnabled = true
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        super.touchesBegan(touches, withEvent: event)
        var alert = UIAlertView()
        alert.title = "lol"
        alert.message = "lol"
        alert.addButtonWithTitle("Ok")
        alert.show()
    }
}

我确信解决方案非常简单,但我找不到它。

2 个答案:

答案 0 :(得分:12)

您需要确保在视图的所有超级视图中启用了userInteractionEnabled。如果任何超级视图将此属性设置为false,则不会为他们或他们的任何子视图处理触摸事件。

答案 1 :(得分:4)

也许有些超级视图将userInteractionEnabled设置为“false”?