我有一些侧 UIView
在屏幕大小.这边 UIView
,放在左边,其 X
是在 -screen.width
所以我们看不到他。
比 , 在这个侧视图类视图中,我添加了一个小的正方形UIView,在它的右侧,在 screen.width
这意味着在主视图上,我可以看到在左边,这个小方块从侧视图。
这种结构是为了得到一个侧面菜单的效果。
在这个小方块视图中,有一个 UIButton
, 但这个按钮对触摸没有反应 .
我不想把这个侧边菜单放在屏幕内几个像素的地方。因为这可能会覆盖一些内容。
因此,我创建了这样的结构,侧边菜单在屏幕尺寸内,它被放置在 减去屏幕尺寸.宽度
有一个小方块进入屏幕,当你按下它时,整个侧视图就会出现。
为什么这个按钮被禁用?是不是因为他被挂在空中,其中一部分不在它的视线范围内?
EDIT:
找到了这个伟大的答案,这对我来说是行不通的。
我已经把这个添加到包含按钮的父视图中,并且它确实记录了触摸,但不工作。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
CGFloat radius = 200.0;
CGRect frame = CGRectMake(self.frame.size.width, 0,
radius,
radius);
if (CGRectContainsPoint(frame, point))
{
NSLog(@"log");
return self;
}
return nil;
}
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
if (CGRectContainsPoint(self.bounds, point) ||
CGRectContainsPoint(menus.frame, point))
{
return YES;
}
return NO;
}
谢谢亚伦,我发现确实这个解决方案确实有效。
但是我发现一个比较好的方法,就是在不覆盖主屏幕内容的情况下,把侧边菜单的高度设置得很小,把它的x设置成在主场景里面出现一点。
然后在打开它的时候,就在带它覆盖主场景之前的一瞬间,把它的高度改成在屏幕高度内,这样一来,你在关闭菜单的时候就不会覆盖内容,但是当你打开它的时候,你就把它的高度改成了全高。