0
在我的UIScrollview我有一个UIImageView黑色背景。里面它有一个与里面的UIImage另一个的UIImageView和我使用此代码,以使变焦:缩放UIImageView和移动缩放
fullImageView = [[UIView alloc] initWithFrame:CGRectMake(0,0,screenWidth,screenHeight)];
fullImageView.backgroundColor = [UIColor blackColor];
[fullImageView addSubview:copyImageToShowImageView];
zoomFullImageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,screenWidth,screenHeight)];
[zoomFullImageScrollView addSubview:fullImageView];
[self.view addSubview:zoomFullImageScrollView];
UIPinchGestureRecognizer *twoFingerTapRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapImage:)];
[copyImageToShowImageView addGestureRecognizer:twoFingerTapRecognizer];
//Then..
- (void)doubleTapImage:(UIPinchGestureRecognizer *)gesture{
if (gesture.state == UIGestureRecognizerStateEnded
|| gesture.state == UIGestureRecognizerStateChanged) {
CGFloat currentScale = copyImageToShowImageView.frame.size.width/copyImageToShowImageView.bounds.size.width;
CGFloat newScale = currentScale * gesture.scale;
NSLog(@"gesture.scale = %f", currentScale * gesture.scale);
if (newScale < 1) {
newScale = 1;
}
if (newScale > 100) {
newScale = 100;
}
CGAffineTransform transform = CGAffineTransformMakeScale(newScale, newScale);
copyImageToShowImageView.transform = transform;
gesture.scale = 1;
copyImageToShowImageView.transform = CGAffineTransformTranslate(copyImageToShowImageView.transform, newScale, newScale);
zoomFullImageScrollView.contentSize=CGSizeMake(copyImageToShowImageView.frame.size.width, copyImageToShowImageView.frame.size.height);
}
}
//and the methods:
- (void)viewDidLoad {
NSLog(@"super");
[super viewDidLoad];
zoomFullImageScrollView.minimumZoomScale=0.5;
zoomFullImageScrollView.maximumZoomScale=6.0;
zoomFullImageScrollView.delegate=self;
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return copyImageToShowImageView;
}
此代码的工作,但有一个问题,因为滚动视图内容大小从UIImageView的大小不同。也许他们平等但不一致。然后我想,当用户进行缩放,图像放大那里,并不总是从中心,但这并不重要..
我希望我解释我自己。
我该怎么办?
我更新我的答案,因为我有另一个问题,使用滚动视图 – lubilis
检查[this](http://www.timoliver.com.au/2012/01/14/zooming-to-a-point-in-uiscrollview/ )解决方案。此类别可以缩放到特定点。我认为你不需要应用那些正在应用的转换。 –
好吧,我解决了与UIScrollView及其委托方法,谢谢! – lubilis