首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIPanGestureRecognizer for UIImageView for for

UIPanGestureRecognizer for UIImageView for for
EN

Stack Overflow用户
提问于 2014-12-11 21:14:10
回答 1查看 194关注 0票数 0

以下是我想要完成的事情,就好像这是层次分明的

(顶部)-注解针(30x30px)这是一个UIImageView。-有照片的UIViewImage - UIScrollView

这个想法是你可以在视图中按一个按钮一个新的引脚图像显示在屏幕的中心,但是你想要将这个引脚重新定位到显示图片的区域是有意义的。另外,如果您再次按下引脚按钮,则额外的引脚将被放置在屏幕的中心,将第一个引脚移到已经移动到的位置。

我可以将UIPanGestureRecognizer添加到一个只有UIViewImage的小应用程序中,但是一旦这个视图在视图中和uiscrollview中,它就不能工作了。

下面是我的声明文件,它只是UIScrollView的一个委托:

代码语言:javascript
复制
#import <UIKit/UIKit.h>

@interface ImageAnnotationVC : UIViewController <UIScrollViewDelegate>
{
    UIPanGestureRecognizer *panRecognizer;
}

下面是如何初始化我的scrollView:

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];

    imageView_image.image = originalImage;
    scrollView.contentSize = originalImage.size;
    scrollView.delegate = self;
    scrollView.minimumZoomScale = 1.0;
    scrollView.maximumZoomScale = 100.0;    
}

下面是如何创建引脚并将其带到屏幕上:

代码语言:javascript
复制
- (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];
}

以下是目标方法:

代码语言:javascript
复制
- (void)handlePan:(UIPanGestureRecognizer *)recognizer
{
    NSLog("In handlePan");
}

问题是handlePan从来没有被调用过。有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-11 22:22:48

默认情况下,UIImageView不是启用的用户交互,因此您必须为pin UIImageView及其superview UIImageView启用用户交互,才能识别手势。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27432475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档