swift UIScrollView

本文介绍如何使用SwiftUI中的UIScrollView实现图片的放大缩小及页面间的平滑滚动效果。通过设置UIScrollView属性,如zoom比例、内容尺寸等,配合UIImageView显示图片,并通过自定义viewForZooming方法实现图片缩放功能;同时,通过启用分页功能实现页面间流畅滚动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  创建

        let scroll = UIScrollView()

        scroll.frame = self.view.bounds
        scroll.showsVerticalScrollIndicator = false
        scroll.showsHorizontalScrollIndicator = false
        scroll.indicatorStyle = .default

        let imagev = UIImageView.init(image: UIImage(named:"2"))

       // 设置范围

        scroll.contentSize = CGSize.init(width: 400, height: 800)
        scroll.addSubview(imagev)

        self.view.addSubview(scroll)

1、实现放大缩小

      scroll.minimumZoomScale = 0.1
      scroll.maximumZoomScale = 3
      scroll.delegate = self

      func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        for subview: AnyObject in scrollView.subviews {
             if subview.isKind(of: UIImageView.self) {
                return subview as? UIView
             }
         }
         return nil
       }

2、页单元的滚动


class ViewController: UIViewController{
   
    let numberPages = 3
    let pageWidth = 320
    let pageHeight = 360
    
    
    
    
    
    
      override func viewDidLoad() {
        super.viewDidLoad()
        
        let scrollView = UIScrollView()
        scrollView.frame = self.view.bounds
        scrollView.contentSize = CGSize.init(width: pageWidth * numberPages, height:  pageHeight)
        scrollView.isPagingEnabled = true
        scrollView.showsHorizontalScrollIndicator = false
        scrollView.showsVerticalScrollIndicator = false
        scrollView.scrollsToTop = false
        for i in 0...numberPages {
            let myView = UIView.init(frame: CGRect.init(x: pageWidth * i, y: 0, width: pageWidth, height: pageHeight))
            myView.backgroundColor = UIColor.init(colorLiteralRed: Float(arc4random()%240 + 1)/255.0, green: Float(arc4random()%240 + 1)/255.0, blue: Float(arc4random()%240 + 1)/255.0, alpha: 1)
            scrollView.addSubview(myView)
        }
        self.view.addSubview(scrollView)
   
    }



没有太仔细写,以后有时间补上吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值