Ios 将UIimageView添加到UIScrollView

Ios 将UIimageView添加到UIScrollView,ios,swift,uiscrollview,uiimageview,Ios,Swift,Uiscrollview,Uiimageview,我正在使用UIScrollView和UIImageView作为子视图。现在,缩放效果很好,但最初的图像大小是迷失方向的,如屏幕截图所示。我该怎么做才能让它进入中心。这是我的密码 @IBOutlet weak var scrollView: UIScrollView! var imageView = UIImageView(); override func viewDidLoad() { super.viewDidLoad() scrollView.delegate = se

我正在使用UIScrollView和UIImageView作为子视图。现在,缩放效果很好,但最初的图像大小是迷失方向的,如屏幕截图所示。我该怎么做才能让它进入中心。这是我的密码

@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
}
@IBMOutlet弱var scrollView:UIScrollView!
var imageView=UIImageView();
重写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(名为:“abc.png”)
var imagee=UIImage(名为:“abc.png”)
让大小=图像?大小
//imageView.contentMode=UIViewContentMode.ScaleSpectFit
imageView.userInteractionEnabled=true
scrollView.addSubview(imageView)
scrollView.contentSize=大小!
让scrollViewFrame=scrollView.frame
设scaleWidth=scrollViewFrame.size.width/scrollView.contentSize.width
让scaleHeight=scrollViewFrame.size.height/scrollView.contentSize.height
设最小刻度=最小(刻度高度,刻度宽度)
scrollView.minimumZoomScale=minScale
scrollView.maximumZoomScale=1
scrollView.zoomScale=最小刻度
centerScrollViewContents()
}
func centerScrollViewContents(){
让boundsSize=scrollView.bounds.size
var contentsFrame=imageView.frame
如果contentsFrame.size.widthUIView?{
返回图像视图
}
下面是我最初是如何获得图像的截图

将您的
centerScrollViewContents
方法放在
视图中将出现

您不应该在
viewDidLoad
中进行与大小/位置相关的活动,因为尚未布置任何内容,并且宽度、高度等将出现错误。最好在
视图中执行此操作,该视图将显示
,其中的大小应该更正确。您可以添加视图,稍后只需进行定位计算。