UITapGuesture CGMakeRect隐形框架

时间:2014-10-15 12:53:34

标签: ios objective-c uitapgesturerecognizer

是否可以在视图上创建一个不可见的框架并向其添加UITapGuesture?

2 个答案:

答案 0 :(得分:0)

可能的。您可以使用所需的框架将子视图添加到视图中,并将subview.backgroundColor设置为[UIColor clearColor];

答案 1 :(得分:0)

创建一个与父视图具有相同框架的不可见视图。设置其背景清晰颜色并将其添加到父视图。

UIView *invisibleView = [[UIView alloc] initWithFrame:parentView.frame];

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedOnInvisibleFrame:)];
[invisibleView addGestureRecognizer:tapGesture];
[invisibleView setBackgroundColor:[UIColor clearColor]];

[parentView setUserInteractionEnabled:YES];
[parentView addSubview:invisibleView];

替代解决方案:

建议或采取替代方案。

我不知道您使用点按手势的要求是什么。如果要求不是坚持使用轻击手势,那么上面就有一个替代方案。

使用父视图的相同框架创建UIButton对象。将其类型设置为自定义类型,默认情况下它将对您不可见。您可以在UIControlEventTouchUpInside上使用选择器,它与点按手势相同。

你的选择如何。

UIButton *invisibleButton = [UIButton buttonWithType:UIButtonTypeCustom];
[invisibleButton setFrame:parentView.frame];
[invisibleButton addTarget:self action:@selector(invisibleButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
[parentView addSubview:invisibleButton];