【发布时间】:2013-04-13 22:49:54
【问题描述】:
我有一个应用程序,用户点击一个按钮,应用程序将实例化一个图像层 (UIImageView)。我想这样做,以便用户可以移动选定的图像层,无论他们点击什么。在这里阅读了一些主题后,我了解到我可以使用 UIPanGestureRecognizer 来移动选定的图像层。
- (IBAction)buttonClicked:(id)sender {
imageview = [[UIImageView alloc] initWithFrame:CGRectMake(100, 0, 300, 22)];
UIPanGestureRecognizer *imageviewGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(recognizePan:)];
[imageviewGesture setMinimumNumberOfTouches:1];
[imageviewGesture setMaximumNumberOfTouches:1];
imageview.image = [UIImage imageNamed:@"pinimage.png"];
[imageview addGestureRecognizer:imageviewGesture];
[imageview setUserInteractionEnabled:YES];
[self.view addSubview:imageview];
NSUInteger currentag = [self UniqueTag]; // Assigning a unique integer
imageview.tag = currentag;
}
- (void)recognizePan:(UIPanGestureRecognizer *)sender {
[[[(UITapGestureRecognizer *)sender view] layer] removeAllAnimations];
[self.view bringSubviewToFront:[(UIPanGestureRecognizer *)sender view]];
CGPoint translatedPoint = [(UIPanGestureRecognizer *)sender translationInView:self.view];
if([(UIPanGestureRecognizer *)sender state] == UIGestureRecognizerStateBegan) {
firstX = [[sender view] center].x;
firstY = [[sender view] center].y;
}
translatedPoint = CGPointMake(firstX + translatedPoint.x,firstY + translatedPoint.y);
[[sender view] setCenter:translatedPoint];
}
现在,我想不通的是,当有多个图像层时,如何将点击的层放在前面。 [self.view bringSubviewToFront:[(UIPanGestureRecognizer *)sender view]] 似乎没有效果。那么我该如何修改我的代码,以便应用程序将点击层带到顶部呢?
感谢您的帮助。
【问题讨论】:
标签: ios6 uipangesturerecognizer