0
我按照附图所示排列了视图。传播UITouch事件
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手势。程序执行时,轻敲WALLVIEW对象不会调用“WallNoteTapped:”方法。怀疑触摸事件不会传递给WALLVIEW对象“note”。
我不明白为什么“WallNoteTapped:”方法没有被触发。
感谢
编辑: 我做的UIImageView,而不是的UIView WALLVIEW子类,它终于奏效。
感谢您的回复。但它并没有解决我的问题。解决了我的问题是,我做了UIImageView的WALLVIEW子类,而不是UIView,它的工作。 – slysid
然后问题是,UIImageView作为默认情况下userInteractionEnabled为false。 –