我有一个观点。在单击时,它将显示文本(它是UIView
实例)。现在我想要转换它。转换它。但触摸点在两种情况下都应该相同(在变换之后和变换之前)。这里的触摸点是改造后改变了。我该怎么办?请帮帮我。谢谢你。提示也将受到赞赏.code:
[UIView beginAnimations:@"tap stopped" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationDelegate:self];
angle = (layer.startAngle + layer.endAngle)/2;
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
self.transform = CGAffineTransformMakeRotation([self rotationThetaForNewTheta:90 andOldTheta:angle]);
[UIView commitAnimations];
title = [NSString stringWithFormat:@"Layer %d",i+1];
UIFont* font = [UIFont systemFontOfSize:15];
self.popup = [[SNPopupView alloc] initWithString:title withFontOfSize:font.pointSize];
[popup addTarget:self action:@selector(didTouchPopupView:)];
[popup setDelegate:self];
[popup showAtPoint:touchPoint inView:self animated:YES];
这里我正在添加弹出视图。转换后,它正在改变原点。
答案 0 :(得分:0)
我想这个问题是因为UIView
在您使用touchPoint
之前发生了变化
您可以使用临时变量在转换前保存touchPoint
并使用它来显示弹出窗口。
修改:: 强>
在UITapGestureRecognizer
的视图中使用ViewController
对象,保持为自定义视图禁用用户交互
但是如果您需要在自定义视图上启用用户交互,那么首先找出与ViewController视图相关的触摸点的位置,并在ViewController的视图中显示弹出窗口。
使用UIGestureRecognizer
方法:
- (CGPoint)locationInView:(UIView *)view
找到接触点。在View参数中传递ViewController的视图,以获取相对于ViewController视图的touchPoint。
此外,在touchPoint上显示弹出窗口时使用inView
。此处也传递ViewController的视图。