gpt4 book ai didi

ios - CGAffineTransformScale 不缩放手势区域

转载 作者:行者123 更新时间:2023-11-29 03:25:40 24 4
gpt4 key购买 nike

我有一个 3x3 的 UIView 网格,其中添加了 UIGestureRecognizers,排列如下:

State1

它的工作方式是,点击一个正方形,使用 CGAffineTransformScale 将其放大 2 倍,并将其覆盖在其他正方形上。问题在于,由于某种原因,触摸区域的大小与 1.0 比例保持相同。

我使用添加方 block

CGRect squareFrame = CGRectMake(1 + squareSpacing + ((squareDimension + squareSpacing) * i), topMargin, squareDimension, squareDimension);
SquareView *square = [[SquareView alloc] initWithFrame:squareFrame];
[square setPosition:i];
square.layer.zPosition = 0;
[self.view addSubview:square];
[squaresArray addObject:square];

Square 在其 init 中添加了手势识别器:

fingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[self addGestureRecognizer:fingerTap];

点击的函数执行以下操作:

[UIView animateWithDuration:1.0
delay:0.0
usingSpringWithDamping:0.8
initialSpringVelocity:10.0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
CGAffineTransform transform = self.transform;
self.transform = CGAffineTransformScale(transform, 2.0, 2.0);
}
completion:nil];

State2

我用红色勾勒出触摸区域。我尝试过使用 zPosition,但我不知道该怎么做才能让它发挥作用,我被困住了。我希望能够在任何地方点击放大的方 block 来将其关闭,但我仅限于红色区域。

提前致谢。

编辑:抱歉,图片太大。已添加代码。

  • 史蒂文

最佳答案

您可能会尝试将展开的 UIView 带到父 View 的前面,以便任何重叠 View 都不会捕获您的点击事件:

[parentView bringSubviewToFront:tappedView];

关于ios - CGAffineTransformScale 不缩放手势区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20486807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com