У меня есть виды, как показано на прилагаемом рисунке.Распространение событий 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. Как вы можете заметить, у меня есть TAP GESTURE в WALLVIEW. Когда программа выполняется, кран объекта WALLVIEW не вызывает метод WallNoteTapped:. Подозревать, что события касания не передаются объекту WALLVIEW «note».
Я не могу понять, почему метод «WallNoteTapped:» не запускается.
Благодаря
EDIT: Я сделал WALLVIEW подкласс UIImageView, а не UIView, и она работала, наконец.
Спасибо за ваш ответ. Но это не решило мою проблему. Какая проблема решена, я создал подкласс UIImageView UIImageView, а не UIView, и это сработало. – slysid
Тогда проблема заключалась в том, что UIImageView по умолчанию имеет userInteractionEnabled для false. –