iOS 使用UIScrollView实现图片的缩放

iOS 使用UIScrollView实现图片的缩放

当需要在特定的区域实现图片的手势缩放时,我们首先想到的就是UIScrollview。

缩放原理:当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容),同时会回调UIScrollView的Delegate方法:
- viewForZoomingInScrollView:(OC)方法
- viewForZooming(Swift)方法
这个方法返回的控件就是需要进行缩放的控件。

实现代码

    let imageWidth = LayoutPublic.ScreenMainSize.mainWidth-30
        let imageHeight = LayoutPublic.ScreenMainSize.mainHeight

        let bgScrollView:UIScrollView = UIScrollView.init(frame: .init(x: 15, y: 15, width: imageWidth, height: imageHeight*0.6))
        bgScrollView.delegate = self
        bgScrollView.maximumZoomScale = 2.0
        bgScrollView.minimumZoomScale = 1.0
        bgScrollView.layer.borderWidth = 5.0;
        bgScrollView.layer.borderColor = UIColor.red.cgColor
        self.addSubview(bgScrollView)

        let imageFactWidth = imageWidth-20 //左右留白
        let imageFactHeight = imageHeight*0.3-10 //上下留白
        imageBgView = UIView.init(frame: .init(x: 10, y: 10, width: imageFactWidth, height: imageHeight*0.6-20))
        bgScrollView.addSubview(imageBgView)

代理方法(记得引入代理方法):

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

实现效果:

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值