我如何 drag/move 在 pdf 视图上显示 imageView? (Objective-C)

How I can drag/move an imageView on pdf view? (Objective-C)

我想要的是,在 pdf 视图之上我想添加一张图片(一张或多张图片)。一旦我从某个按钮添加,它必须出现(出现)在 pdf 视图上的任何位置,并且根据我的选择,我可以 drag/move 在 pdf 视图的任何 location/position 上显示该图像。

我试过的:

示例 1:我拿了一个 ViewController 并以编程方式在视图上添加了一个 imageView。并使用一些触摸事件方法,我可以轻松地 move/drag 视图中任何位置的图像

这里是代码,

    #import "ViewController.h"

@interface ViewController ()
{
    UIImageView * imageview;
    CGRect frame;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect myImageRect = CGRectMake(100, 100, 200, 35);
    self->imageview = [[UIImageView alloc] initWithFrame:myImageRect];
    [self->imageview setImage:[UIImage imageNamed:@"signer"]];
    [self.view addSubview:self->imageview];
}
 

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    UITouch *touch = [[event allTouches] anyObject];
    //CGPoint touchLocation = [touch locationInView:touch.view];
    CGPoint touchLocation = [touch locationInView:touch.view];

    CGRect frame = [self.view convertRect:self->imageview.frame fromView:self.view];
    NSLog(@"touchesMoved %@", CGRectCreateDictionaryRepresentation(frame));
    
    if ([touch.view isEqual: self.view]) {

        self->imageview.center = touchLocation;

        return;
    }
}

@end

我想要实现的目标:

示例 2:我拿了一个 ViewController,并在上面添加了 pdf 视图。同样,我在 pdfView 上添加了一个 imageView。 当我尝试 drag/move 时,imageView 并没有像示例 1 中那样移动。

如何在 pdfView 上实现 moving/drag imageView? 任何人都可以帮助我。

Both project code can be found on following link

问题是 imageview 添加在 scrollview of pdfview 下面。其他问题 move imageView 不像 example 1 那样移动,因为 pdfView 包含 scrollview 所以当你触摸 pdfview 它调用 pdfview 的手势而不是 touchesMoved 方法在 ViewController.

中声明

解法:

viewDidLoad

中添加这一行
self->imageview.userInteractionEnabled = YES;

最后在preparePDFViewWithPageMode方法中添加这一行

[self.pdfView bringSubviewToFront:self->imageview];

替换为`touchMoved'

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
       UITouch *touch = [[event allTouches] anyObject];
       CGPoint touchLocation = [touch locationInView:self.pdfView];
       self->imageview.center = touchLocation;
}