将 UIimageView 添加到 UIScrollView
Adding UIimageView to UIScrollView
我正在使用带有 UIImageView 的 UIScrollView 作为子视图。现在,缩放效果工作正常,但最初图像大小是混乱的,如屏幕截图所示。我应该怎么做才能让它进入中心。这是我的代码
@IBOutlet weak var scrollView: UIScrollView!
var imageView = UIImageView();
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
imageView.frame = CGRectMake(16, 16, scrollView.frame.size.width, scrollView.frame.size.height)
imageView.contentMode = UIViewContentMode.ScaleToFill
imageView.image = UIImage(named: "abc.png")
var imagee = UIImage(named: "abc.png")
let size = imagee?.size
//imageView.contentMode = UIViewContentMode.ScaleAspectFit
imageView.userInteractionEnabled = true
scrollView.addSubview(imageView)
scrollView.contentSize = size!
let scrollViewFrame = scrollView.frame
let scaleWidth = scrollViewFrame.size.width / scrollView.contentSize.width
let scaleHeight = scrollViewFrame.size.height / scrollView.contentSize.height
let minScale = min(scaleHeight, scaleWidth)
scrollView.minimumZoomScale = minScale
scrollView.maximumZoomScale = 1
scrollView.zoomScale = minScale
centerScrollViewContents()
}
func centerScrollViewContents(){
let boundsSize = scrollView.bounds.size
var contentsFrame = imageView.frame
if contentsFrame.size.width < boundsSize.width{
contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width) / 2
}else{
contentsFrame.origin.x = 0
}
if contentsFrame.size.height < boundsSize.height {
contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height) / 2
}else{
contentsFrame.origin.y = 0
}
imageView.frame = contentsFrame
}
func scrollViewDidZoom(scrollView: UIScrollView) {
centerScrollViewContents()
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
这是我最初如何获取图像的屏幕截图
将您的 centerScrollViewContents
方法放在 viewWillAppear
中。
我正在使用带有 UIImageView 的 UIScrollView 作为子视图。现在,缩放效果工作正常,但最初图像大小是混乱的,如屏幕截图所示。我应该怎么做才能让它进入中心。这是我的代码
@IBOutlet weak var scrollView: UIScrollView!
var imageView = UIImageView();
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
imageView.frame = CGRectMake(16, 16, scrollView.frame.size.width, scrollView.frame.size.height)
imageView.contentMode = UIViewContentMode.ScaleToFill
imageView.image = UIImage(named: "abc.png")
var imagee = UIImage(named: "abc.png")
let size = imagee?.size
//imageView.contentMode = UIViewContentMode.ScaleAspectFit
imageView.userInteractionEnabled = true
scrollView.addSubview(imageView)
scrollView.contentSize = size!
let scrollViewFrame = scrollView.frame
let scaleWidth = scrollViewFrame.size.width / scrollView.contentSize.width
let scaleHeight = scrollViewFrame.size.height / scrollView.contentSize.height
let minScale = min(scaleHeight, scaleWidth)
scrollView.minimumZoomScale = minScale
scrollView.maximumZoomScale = 1
scrollView.zoomScale = minScale
centerScrollViewContents()
}
func centerScrollViewContents(){
let boundsSize = scrollView.bounds.size
var contentsFrame = imageView.frame
if contentsFrame.size.width < boundsSize.width{
contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width) / 2
}else{
contentsFrame.origin.x = 0
}
if contentsFrame.size.height < boundsSize.height {
contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height) / 2
}else{
contentsFrame.origin.y = 0
}
imageView.frame = contentsFrame
}
func scrollViewDidZoom(scrollView: UIScrollView) {
centerScrollViewContents()
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
这是我最初如何获取图像的屏幕截图
将您的 centerScrollViewContents
方法放在 viewWillAppear
中。