【发布时间】:2013-12-03 19:53:38
【问题描述】:
我创建了一个 customViewController 来充当 customActionsheet。在这个 customViewController 中,我有一个 UIView 作为主视图(self.view)和一个 IBOutlet UIView,它是自定义操作表(actionSheetView)。我想要做的是让这个自定义操作表像一个常规操作表一样,如果你在黑暗区域点击,在我的例子中是带有黑色背景和 alpha 5.0 的视图。这就是我所拥有的:
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(slideOut)];
tapGesture.numberOfTapsRequired = 1;
[self.view addGestureRecognizer:tapGesture];
问题在于,子视图,即自定义操作表视图,也获得了点击手势,因此点击 actionSheetView 上的任何内容都会获得点击手势。我尝试了一些类似- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 和self.actionSheetView.userInteractionEnabled = NO; 的方法,但两者似乎都不起作用。任何人都知道如何使 self.view 可点击但为 self.actionSheetView 禁用该手势?非常感谢任何提示、指导或帮助。提前致谢。
【问题讨论】:
-
在实现您提到的选择器之前,您是否实际上将子视图设置为手势识别器的代表? (
tapGesture.delegate = your_subview)
标签: ios objective-c uiview uitapgesturerecognizer