Ios 将UIimageView添加到UIScrollView
我正在使用UIScrollView和UIImageView作为子视图。现在,缩放效果很好,但最初的图像大小是迷失方向的,如屏幕截图所示。我该怎么做才能让它进入中心。这是我的密码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
@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
中进行与大小/位置相关的活动,因为尚未布置任何内容,并且宽度、高度等将出现错误。最好在视图中执行此操作,该视图将显示
,其中的大小应该更正确。您可以添加视图,稍后只需进行定位计算。