我想在我的应用上找到一种“简单”的方法来使用捏合/缩放功能! 所以我决定使用UIScrollView。 到目前为止一切顺利。
我从sqlite db加载我的图像,如下所示:
- (void)viewWillAppear:(BOOL)animated {
imageView.image = entity.Aattribute;
}
- (void)viewDidLoad {
self.title = @"Title";
imageView = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.backgroundColor = [UIColor blackColor];
myScrollView.contentSize = CGSizeMake(imageView.frame.size.width, imageView.frame.size.height);
myScrollView.maximumZoomScale = 4.0;
myScrollView.minimumZoomScale = 0.75;
myScrollView.clipsToBounds = YES;
myScrollView.delegate = self;
[myScrollView addSubview:imageView];
self.view = myScrollView;
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return imageView;
}
任何帮助将不胜感激!
谢谢你的时间!修改 我要在这里回答我自己的问题! (我在这方面越来越好!!!大声笑)
以上是工作代码。我已经编辑过,如果有人需要,可以参考它! 谢谢你的答案!
答案 0 :(得分:0)
这看起来大致正确。几个笔记:
viewForZoomingInScrollView:
希望您返回UIView
。 myImage
听起来很可疑与 UIView
不同。您应该返回imageView
实例变量。这就是被感动的东西。修改强>
UIScrollView类可以有一个 必须采用的代表 UIScrollViewDelegate协议。对于 缩放和平移工作, 代表必须实施两者 viewForZoomingInScrollView:和 scrollViewDidEndZooming:withView:atScale:; 另外,最大 (maximumZoomScale)和最小( minimumZoomScale)必须缩放比例 不同。
所以看起来你仍然需要实现另一个委托方法。