转换UIView实例

时间:2013-09-16 11:04:22

标签: ios uiview transform

我有一个观点。在单击时,它将显示文本(它是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];

这里我正在添加弹出视图。转换后,它正在改变原点。

1 个答案:

答案 0 :(得分:0)

我想这个问题是因为UIView在您使用touchPoint之前发生了变化 您可以使用临时变量在转换前保存touchPoint并使用它来显示弹出窗口。

修改::
UITapGestureRecognizer的视图中使用ViewController对象,保持为自定义视图禁用用户交互

但是如果您需要在自定义视图上启用用户交互,那么首先找出与ViewController视图相关的触摸点的位置,并在ViewController的视图中显示弹出窗口。

使用UIGestureRecognizer方法:
- (CGPoint)locationInView:(UIView *)view找到接触点。在View参数中传递ViewController的视图,以获取相对于ViewController视图的touchPoint。

此外,在touchPoint上显示弹出窗口时使用inView。此处也传递ViewController的视图。