objective-c - 捏合缩放 - 无法在缩放时保持图像位置固定

标签 objective-c ios xcode zooming pinchzoom

我是 iPhone 开发的新手。我想缩放 imageview ,我正在使用以下代码,

- (void)viewDidLoad
{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    self.scrollViewOutlet.minimumZoomScale=0.5;

    self.scrollViewOutlet.maximumZoomScale=4.0;

    self.scrollViewOutlet.contentSize=self.imagetobeZoomed.image.size;

    self.scrollViewOutlet.clipsToBounds=YES;

    self.scrollViewOutlet.delegate=self;

}

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{


    return self.imagetobeZoomed;
}

通过使用上面的代码我可以缩放图像,但我的问题是我的图像在缩放时跑到了左下角。那就是我无法将图像位置固定在屏幕中心。

我希望图像位置在缩放时保持固定。有什么帮助吗?

最佳答案

最后我自己找到了解决方案。这里是图像缩放的完整代码示例:) 这里图像位置在放大和缩小时保持固定。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.scrollViewOutlet.minimumZoomScale=0.5;
    self.scrollViewOutlet.maximumZoomScale=4.0;
    self.scrollViewOutlet.contentSize=CGSizeMake(self.imagetobeZoomed.frame.size.width,       self.imagetobeZoomed.frame.size.height);
    self.scrollViewOutlet.clipsToBounds=YES;
    self.scrollViewOutlet.delegate=self;
}

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.imagetobeZoomed;
}


-(void)scrollViewDidZoom:(UIScrollView *)scrollView
{   
    UIView *subView=[scrollView.subviews objectAtIndex:0];
    CGFloat offsetX = (scrollView.bounds.size.width > scrollView.contentSize.width)? 
    (scrollView.bounds.size.width - scrollView.contentSize.width) * 0.5 : 0.0;
    CGFloat offsetY = (scrollView.bounds.size.height > scrollView.contentSize.height)? 
(scrollView.bounds.size.height - scrollView.contentSize.height) * 0.5 : 0.0;
     subView.center = CGPointMake(scrollView.contentSize.width * 0.5 + offsetX, 
                             scrollView.contentSize.height * 0.5 + offsetY);

}

关于objective-c - 捏合缩放 - 无法在缩放时保持图像位置固定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12190733/

相关文章:

iphone - 如何强制水平方向?

objective-c - 以编程方式更改 NSProgressIndicator 的高度

ios - 如何通过拖放将对象添加到 UITableView 中?

xcode - 总是得到 "The resulting API analysis file is too large."

Xcode 中的 IOS 模拟器不显示类似 iPhone 的窗口,而是显示常规窗口

ios - NSUserDefaults 是这个应用程序想法的正确选择吗?

iphone - 如何从iphone sdk上传多张图片到facebook

iphone - UITextView 上的 resignFirstResponder - 减缓键盘消失

ios - 在我的 iPhone 上运行 Xcode 项目

iphone - 如何在 iPhone 内存中保存 pdf 文件并使其可通过使用钛的 pdf 文件打开器应用程序访问