以下是我想要完成的事情,就好像这是层次分明的
(顶部)-注解针(30x30px)这是一个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从来没有被调用过。有什么想法吗?谢谢!
发布于 2014-12-11 22:22:48
默认情况下,UIImageView不是启用的用户交互,因此您必须为pin UIImageView及其superview UIImageView启用用户交互,才能识别手势。
https://stackoverflow.com/questions/27432475
复制相似问题