gpt4 book ai didi

ios - UIscrollView 快速分页和缩放图像

转载 作者:行者123 更新时间:2023-11-30 13:18:45 24 4
gpt4 key购买 nike

有一个图像数组(从服务器下载),我想在启用分页和缩放的 ScrollView 中显示它,但我没有找到任何解决方案。我进行了很多搜索,但没有得到任何解决方案。

任何帮助都非常感谢。谢谢!

在主 Controller 中

 var mainScrollView: UIScrollView!


override func viewDidLoad() {
super.viewDidLoad()
var x:CGFloat = 0
mainScrollView = UIScrollView(frame: view.bounds)
mainScrollView.pagingEnabled = true
let images=["image.png","photo.jpg","3.png"]
for var i = 0; i < images.count; i++
{

let imageView = UIImageView(image: UIImage(named: images[i]))

let scrollView = SlideShow(image: imageView, scrollFrame: CGRectMake(x, view.bounds.origin.y, view.bounds.width, view.bounds.height))

x = x + UIScreen.mainScreen().bounds.size.width
mainScrollView.addSubview(scrollView)
}
mainScrollView.contentSize=CGSizeMake(x, self.mainScrollView.frame.size.height);
mainScrollView.contentOffset=CGPointMake(0, 0);
view.addSubview(mainScrollView)
// Do any additional setup after loading the view.


}

在子类中

public class SlideShow: UIScrollView, UIScrollViewDelegate {

public var imageView = UIImageView()


// MARK: - Life cycle

init(image: UIImageView, scrollFrame: CGRect) {

super.init(frame: scrollFrame)

//image.setToImageView(imageView)
imageView = image
imageView.clipsToBounds = true
imageView.userInteractionEnabled = true

// UIScrollView(frame: bounds)
delegate = self
showsVerticalScrollIndicator = false
showsHorizontalScrollIndicator = false
backgroundColor = UIColor.blackColor()
// contentSize = imageView.bounds.size
// autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
contentOffset = CGPoint(x: 1000, y: 450)

addSubview(imageView)

// setZoomScale()

setupGestureRecognizer()

}


func setupGestureRecognizer() {
let doubleTap = UITapGestureRecognizer(target: self, action: "handleDoubleTap:")
doubleTap.numberOfTapsRequired = 2
addGestureRecognizer(doubleTap)
}

func handleDoubleTap(recognizer: UITapGestureRecognizer) {

if (zoomScale > minimumZoomScale) {
setZoomScale(minimumZoomScale, animated: true)
} else {
setZoomScale(maximumZoomScale, animated: true)
}
}


required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override public func layoutSubviews() {
setZoomScale()
//setZoomScale(minimumZoomScale, animated: false)
}


public func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {

return imageView

}


func setZoomScale() {
let imageViewSize = imageView.bounds.size
let scrollViewSize = bounds.size
let widthScale = scrollViewSize.width / imageViewSize.width
let heightScale = scrollViewSize.height / imageViewSize.height

minimumZoomScale = min(widthScale, heightScale)
zoomScale = 1.0
}

public func scrollViewDidZoom(scrollView: UIScrollView) {
let imageViewSize = imageView.frame.size
let scrollViewSize = bounds.size

let verticalPadding = imageViewSize.height < scrollViewSize.height ? (scrollViewSize.height - imageViewSize.height) / 2 : 0
let horizontalPadding = imageViewSize.width < scrollViewSize.width ? (scrollViewSize.width - imageViewSize.width) / 2 : 0

scrollView.contentInset = UIEdgeInsets(top: verticalPadding, left: horizontalPadding, bottom: verticalPadding, right: horizontalPadding)
}

}

最佳答案

解决方案 1 :- Agrume Library with load photo url.
您可以通过多种方式使用图像查看器(随附的示例项目显示了所有这些方式)。

这个库是最好的库。

enter image description here

解决方案 2:- This library provide multiple images and zoom also.

关于ios - UIscrollView 快速分页和缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37968986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com