iosxib 设置图片_【iOS】xib+10行代码搞定scrollview图片查看

最终效果

Platform: iOS8.0+

Language: Swift3.0

Editor: Xcode8

1.在storyboard上拖一个UIScrollView

scrollview 约束

2.再在UIScrollView中拖一个UIImageView

01 imageview 约束

02 为了避免约束报错/警告,给imageview设置一张图片

03 Update Frames

3.绑定@IBOutlet

@IBOutlet weak var scrollView: UIScrollView!

@IBOutlet weak var imageView: UIImageView!

// 约束 - 居中显示用

@IBOutlet weak var ivLeadingCons: NSLayoutConstraint!

@IBOutlet weak var ivTrailingCons: NSLayoutConstraint!

@IBOutlet weak var ivTopCons: NSLayoutConstraint!

@IBOutlet weak var ivBottomCons: NSLayoutConstraint!

4.添加方法

override func viewDidLayoutSubviews() {

super.viewDidLayoutSubviews()

scaleImageViewForAdjustingViewSize()

}

// 缩放到屏幕合适

fileprivate func scaleImageViewForAdjustingViewSize()

{

let minScale = min(view.bounds.size.width / imageView.bounds.size.width, view.bounds.size.height / imageView.bounds.size.height)

scrollView.minimumZoomScale = minScale //最小缩放值

scrollView.zoomScale = minScale //当前缩放值

}

// 居中显示

fileprivate func updateConstraintsForPositioningImageViewCenterly()

{

let yOffset = max(0, (view.bounds.size.height - imageView.frame.size.height)/2)

let xOffset = max(0, (view.bounds.size.width - imageView.frame.size.width)/2)

// 设置约束 - 相当于设置scrollview的contentsize,这样它才能滚动内容

ivTopCons.constant = yOffset

ivBottomCons.constant = yOffset

ivLeadingCons.constant = xOffset

ivTrailingCons.constant = xOffset

view.layoutIfNeeded()

}

extension ViewController: UIScrollViewDelegate{

func viewForZooming(in scrollView: UIScrollView) -> UIView? {

return imageView

}

func scrollViewDidZoom(_ scrollView: UIScrollView) {

updateConstraintsForPositioningImageViewCenterly()

}

}

5.Build and run to see what does it looks like.

如果对你有帮助,别忘了点个❤️哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值