gpt4 book ai didi

ios - 拖动时旋转 View

转载 作者:行者123 更新时间:2023-11-29 12:54:47 24 4
gpt4 key购买 nike

我想在拖动 UIView 时稍微旋转它。我设法使用 UIPanGestureRecognizer 进行了拖动。我还尝试使用 CGAffineTransformRotate 进行旋转,它成功了。但是,当我同时应用拖动和旋转时,UIView 仅旋转并且不会在 super View 周围拖动。这是我在手势处理程序中所做的:

CGPoint translation = [gesture translationInView:self.view];
// to drag
gesture.view.center = CGPointMake(gesture.view.center.x + translation.x, gesture.view.center.y + translation.y);
// to rotate
gesture.view.transform = CGAffineTransformRotate(gesture.view.transform, degreesToRadians(translation.x)/4);
// return to default so that it doesn't accumulate
[gesture setTranslation:CGPointMake(0, 0) inView:self.view];

我该如何解决这个问题?

编辑:这是完整的代码:

- (void)handlePan:(UIPanGestureRecognizer*)gesture{
if (gesture.state == UIGestureRecognizerStateBegan) {
// Save initial post center for snapping
point = CGPointMake(gesture.view.center.x, gesture.view.center.y);
} else if (gesture.state == UIGestureRecognizerStateChanged){
// Translate user movement across the screen to dragging coordinates
CGPoint translation = [gesture translationInView:self.view];

gesture.view.center = CGPointMake(gesture.view.center.x + translation.x, gesture.view.center.y + translation.y);

CGAffineTransform rotate = CGAffineTransformRotate(gesture.view.transform, degreesToRadians(translation.x)/4);

gesture.view.transform = rotate;//CGAffineTransformConcat(translate, rotate);

[gesture setTranslation:CGPointMake(0, 0) inView:self.view];


} else if (gesture.state == UIGestureRecognizerStateEnded){
// Animate snap back to place
[UIView animateWithDuration:0.2 animations:^{
gesture.view.transform = CGAffineTransformIdentity;
// [self.imagePost setCenter:point];
}];
}

最佳答案

尝试添加这个方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
if (![gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]] && ![otherGestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
return YES;
}

return NO;

关于ios - 拖动时旋转 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21423009/

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