UIButton位置在半空中的地方--是禁用吗?

问题描述 投票:0回答:1

我有一些侧 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;
}
ios objective-c uiview
1个回答
0
投票

谢谢亚伦,我发现确实这个解决方案确实有效。

超出UIView界限的交互

但是我发现一个比较好的方法,就是在不覆盖主屏幕内容的情况下,把侧边菜单的高度设置得很小,把它的x设置成在主场景里面出现一点。

然后在打开它的时候,就在带它覆盖主场景之前的一瞬间,把它的高度改成在屏幕高度内,这样一来,你在关闭菜单的时候就不会覆盖内容,但是当你打开它的时候,你就把它的高度改成了全高。

© www.soinside.com 2019 - 2024. All rights reserved.