我如何 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?
任何人都可以帮助我。
问题是 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;
}
我想要的是,在 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? 任何人都可以帮助我。
问题是 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;
}