一开始的时候是UIScrollView直接嵌套UIImageView,滑动浏览都是正常的,但是不能伸缩,试了UIScrollVIew自身的zoom方法,也试用了pinch gesture的方法都无果,后来想到了用UIScrollView嵌套UIScrollVIew再嵌套UIImageView的方法实现,然后缩放用的是UIScrollView自身的缩放方法,成功,很棒。
载入图片是用的SDWebImage,提示框用的是MBProgressHUD
实现了在当前图片放大情况下,滑动到相邻的图片时对当前图片恢复到原始比例。以及缩小时保证图片在正中间。解决了滑动时显示多个“载入中”的BUG
以下是源码:(直接复制不能运行)
func showImages(theView:UIView,imageNamesTMP:[String])
{
println("showImages")
imageNames = imageNamesTMP
var numberOfImages:CGFloat = (CGFloat)(imageNames.count)
imageBigScrollView.contentSize = CGSizeMake(SCREENWIDTH * numberOfImages, SCREENHEIGHT)
imageSmallScrollViews = NSMutableArray()
for(var i = 0; i < (Int)(numberOfImages);i++)
{
var smallScrollView = UIScrollView(frame: CGRectMake(SCREENWIDTH * (CGFloat)(i), 0, SCREENWIDTH, SCREENHEIGHT))
smallScrollView.pagingEnabled = false
smallScrollView.contentSize = CGSizeMake(SCREENWIDTH, SCREENHEIGHT)
smallScrollView.delegate = self
smallScrollView.showsHorizontalScrollIndicator = false
smallScrollView.showsVerticalScrollIndicator = false
smallScrollView.minimumZoomScale = 0.2
smallScrollView.maximumZoomScale = 8
imageBigScrollView.addSubview(smallScrollView)
imageSmallScrollViews.addObject(smallScrollView)
}
var pageControlHeight:CGFloat = 20
imagePageControl = UIPageControl(frame: CGRectMake(0, SCREENHEIGHT - pageControlHeight, SCREENWIDTH, pageControlHeight))