以下是我想要完成的想法,就好像这是图层一样
(TOP) - 注释引脚(30 x 30px)这是一个UIImageView。 - 带图片的UIViewImage - UIScrollView
这个想法是你可以在视图中按一个按钮,在屏幕中央显示一个新的图钉图像,但是你想把那个图钉重新定位到显示图片区域的位置。 此外,如果您再次按下按钮按钮,则会在屏幕中央放置其他引脚,将第一个引脚留在您已移动的位置。
我可以将UIPanGestureRecognizer添加到只有UIViewImage的小应用程序中,但是一旦这个视图位于视图中并且在uiscrollview内部,它就不起作用。
这是我的声明文件,只是UIScrollView的委托:
#import <UIKit/UIKit.h>
@interface ImageAnnotationVC : UIViewController <UIScrollViewDelegate>
{
UIPanGestureRecognizer *panRecognizer;
}
这是我的scrollView初始化的方式:
- (void)viewDidLoad
{
[super viewDidLoad];
imageView_image.image = originalImage;
scrollView.contentSize = originalImage.size;
scrollView.delegate = self;
scrollView.minimumZoomScale = 1.0;
scrollView.maximumZoomScale = 100.0;
}
这里是如何创建引脚并将其带到屏幕上的:
- (IBAction)button_addAnnotation:(id)sender
{
UIImageView *annotationImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"push-pin-mini@3x.png"]];
[annotationImage setCenter:CGPointMake(imageView_image.bounds.size.width / 2, imageView_image.bounds.size.height / 2)];
panRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePan:)];
[annotationImage addGestureRecognizer:panRecognizer];
[imageView_image addSubview:annotationImage];
}
以下是目标方法:
- (void)handlePan:(UIPanGestureRecognizer *)recognizer
{
NSLog("In handlePan");
}
问题是handlePan永远不会被调用。 有任何想法吗?谢谢!
答案 0 :(得分:0)
UIImageView
未启用用户互动,因此您必须为 图钉UIImageView
及其超级视图{{1}启用用户互动}以便识别手势。