gpt4 book ai didi

ios - 圆形 View 上的 UIGestureRecognizer

转载 作者:行者123 更新时间:2023-12-02 22:47:35 26 4
gpt4 key购买 nike

我有一个UIView,我使用下面的代码来使其圆润。

[myView setBackgroundColor:[UIColor redColor]];
[[myView layer] setCornerRadius:[myView bounds].size.height / 2.0f];
[[myView layer] setMasksToBounds:YES];
[myView setClipsToBounds:YES];

然后添加UIPanGestureRecognizer来移动盒子

UIPanGestureRecognizer *panGesture=[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(boxIsMoving:)];
[myView addGestureRecognizer:panGesture];

但问题是,当用户点击圆形之外但在实际框架中并开始拖动我的 View 时,我的 View 也开始移动。谁能建议我如何忽略回合外的触碰。

最佳答案

您可以使用此委托(delegate)方法。如果触摸超出圆角半径,则返回 NO。

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
CGPoint touchPoint = [touch locationInView:myView];
if (CGRectContainsPoint(myview.bounds, touchPoint))
{
CGFloat centerX = CGRectGetMidX(myView.bounds);
CGFloat centerY = CGRectGetMidY(myView.bounds);
CGFloat radius2 = pow((touchPoint.x -centerX),2)+ pow((touchPoint.y - centerY), 2);
if (radius2 < pow(CGRectGetWidth(myView.frame)/2, 2))
{
return YES;
}
}
return NO;
}

关于ios - 圆形 View 上的 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30595933/

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