【发布时间】:2013-06-03 00:08:32
【问题描述】:
我已经阅读了许多有关启用/禁用触摸事件的问题的答案,但对我没有任何帮助,所以我问自己一个问题。
我有一个 UIImageView 对象 (spot):
// in my view controller header file:
@property (nonatomic, strong) IBOutlet UIImageView *spot;
然后我有与这个对象相关的代码:
// in my view controller .m file:
@synthesize spot
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// handle when that spot is touched ...
}
而且效果很好。例如,我可以在点击地点时改变地点显示的图像。
首先我想看看如何在现场禁用触摸事件,所以我尝试了:
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
而且效果很好。在某些时候,根据我想要做什么,我能够禁用所有触摸事件。
然后我向这个视图控制器添加了一个按钮,我希望该按钮始终可点击,并始终为该按钮启用触摸事件。
所以现在我禁用触摸事件的方法不起作用,因为它太笨拙了。它会清除该视图中任何位置的所有触摸事件。
我只想禁用该位置的触摸事件。我试过了:
spot.userInteractionEnabled = NO;
但这没有用。该点仍然是可点击的。我也试过了:
[spot1 setUserInteractionEnabled:NO];
也没有用。我很困惑为什么这些不起作用。我的问题是:
我怎样才能在这一点上禁用触摸事件,这一个 UIImageView 对象?
编辑:为了解决下面提出的问题,在 Interface Builder 中,在我的 .xib 中,我已将 UIImageView 对象链接到我的头文件中设置的属性。那是它的参考出口。
【问题讨论】:
-
您将手势识别器添加到何处?
-
在我的 .xib 中,我有一个 UIImageView 链接到我的头文件中设置的属性。它附加到:
@property (nonatomic, strong) IBOutlet UIImageView *spot;这是它的引用出口。 -
在 Xcode 的界面设计器中取消勾选“User Interaction Enabled”以禁用任何类型的交互
-
在界面设计器中,我取消了“辅助功能”窗格中的“启用用户交互”框。 “视图”窗格中的“已启用用户交互”框已取消选中。没有任何效果。该点仍然可以点击。
标签: ios objective-c uiimageview touch