【问题标题】:how can enable and disable the user-interaction option of uiview in a button click如何在按钮单击中启用和禁用 uiview 的用户交互选项
【发布时间】:2012-02-24 06:32:41
【问题描述】:
我正在尝试使用手势识别器实现Ipad 应用程序。在我的应用程序中有一些小的UIView,每个UIView 都有一个子视图(UIButton)。我的需要是,如果单击一个按钮,该按钮的用户交互选项的super view 将变为YES,其他视图userinteraction 选项将变为NO。实现后,超级视图统治子视图(即如果一个视图的用户交互选项变为NO,这将影响子视图)。如何避免上述问题?
【问题讨论】:
标签:
objective-c
uiview
xcode4
uibutton
user-interaction
【解决方案1】:
好吧,假设您在故事板或 xib 文件中设置了预定义数量的视图和子视图,您可以为每个视图添加一个属性。然后使用手势识别器来确定用户是否点击了视图。如果他们这样做了,您可以使用您设置的属性将相应的启用视图的属性设置为 YES 或 NO。
例如,添加一个 IBAction 来检测您的手势识别器,该识别器执行类似于以下操作:
- (IBAction)tap:(UITapGestureRecognizer *)gesture
{
CGPoint tapLocation = [gesture locationInView:self.aViewWhereYouMonitorGestures];
for (UIView *view in self.aViewWhereYouMonitorGestures.subviews) {
if (CGRectContainsPoint(view.frame, tapLocation)) {
self.someView.enabled = YES; // or NO depending on what you want to do.
}
}
}