因为个人公司项目特殊需求,网上一些比较好的三方图片浏览只好排除.(个人推荐:PYPhotoBrowser,附带Github:https://github.com/iphone5solo/PYPhotosView)
在自己封装图片浏览器时有两种方案:一是利用手势,二是利用UIScrollView自带的放大缩小功能.我选择的第二种,处理起来确实简单方便.
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return imageView; // 返回需要放大的view
}
这个代理方法必须调用,且设置返回值(imageView的superView是scrollview).但是我在搭建完毕后发现,放大图片后图片会发生偏移.所以,我在下面这个代理方法设置重置imageView的frame和scrollview的contentSize.但是发现imageView被scrollview裁掉边缘.
自己琢磨了半天.发现目前合理的解决方法只有调整center.(下面是我的代码)
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
UIImageView *imageView = [scrollView viewWithTag:10000];
[imageView removeFromSuperview];
imageModel *image = _imageArray[currentPage];
if (image.originImg.size.width > image.originImg.size.height) {
imageView.center = CGPointMake(imageView.frame.size.width/2, scrollView.center.y);
} else {
imageView.center = CGPointMake(scrollView.center.x, imageView.frame.size.height/2);
}
[scrollView addSubview:imageView];
[scrollView setContentSize:CGSizeMake(imageView.frame.size.width, imageView.frame.size.height <= self.frame.size.height ? self.frame.size.height : imageView.frame.size.height)];
}
我想在这儿分享自己遇到的问题,已经向各位大神们求助有没有更合理的解决方法.(本人菜鸟,望大家指点).