【问题标题】:how I can swipe the images with pages control [closed]我如何使用页面控件滑动图像[关闭]
【发布时间】:2021-08-25 09:40:32
【问题描述】:
import UIKit

class ViewController: UIViewController{
    
    @IBOutlet weak var pagecontroler: UIPageControl!
    @IBOutlet var mainView: UIView!
    @IBOutlet weak var imgView: UIImageView!
    @IBOutlet weak var lblName: UILabel!
    var pageviewconter: UIPageViewController?
    var image = ["Dog","Lion", "Parorte", "Picocke", "Rabit"]
    var mac = Int()
    var name = ["Dog","Lion", "Parorte", "Picocke", "Rabit"]
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.pagecontroler.currentPage = image.count
        let swipeRight = UISwipeGestureRecognizer(target: self, action:
                                                    #selector(swiperight))
        swipeRight.direction = .right
        self.view.addGestureRecognizer(swipeRight)
        let swipeLeft =  UISwipeGestureRecognizer(target: self, action: #selector(swipeleft))
        swipeLeft.direction = .left
        self.view.addGestureRecognizer(swipeLeft)
        
    }
    
    @objc func swiperight(sender: UISwipeGestureRecognizer){
        imgView.image = UIImage(named: image[mac])
        if mac < image.count - 1{
            mac = mac  + 1
            imgView.image = UIImage(named: image[mac])
            lblName.text = name[mac]
        }
    }
    @objc func swipeleft(sender: UISwipeActionsConfiguration){
        imgView.image = UIImage(named: image[mac])
        if mac < image.count - 1 {
            mac = mac + 1
            imgView.image = UIImage(named: image[mac])
            lblName.text = name[mac]
        }
    }
}

【问题讨论】:

  • 请查看How to Ask...然后花几分钟时间明确提出您的问题。

标签: ios


【解决方案1】:

您应该尝试使用集合视图和滚动视图的委托方法:

 lazy var collectionView: UICollectionView = {
    let layout = UICollectionViewFlowLayout()
    layout.scrollDirection = .horizontal
    layout.sectionInset = .zero
            
    let view = UICollectionView(frame: .zero, collectionViewLayout: layout)
    view.backgroundColor = .clear
    view.showsHorizontalScrollIndicator = false
    view.isPagingEnabled = true
    view.dataSource = self
    view.delegate = self
    view.translatesAutoresizingMaskIntoConstraints = false
    
    return view
}()

 lazy var pageControl: UIPageControl = {
    let control = UIPageControl()
    control.isUserInteractionEnabled = false
    control.translatesAutoresizingMaskIntoConstraints = false
    
    return control
}()

然后像这样实现scrollViewdidScroll方法:

extension MyViewController: UIScrollViewDelegate {
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let currentPage = collectionView.contentOffset.x / collectionView.frame.size.width;
        pageControl.currentPage = Int(currentPage)
    }
}

不要忘记在您的集合视图中注册单元格,并在您的 viewDidLoad 或更好的 viewDidLayoutSubviews 方法中添加带有 pageControl 的集合视图。

【讨论】:

猜你喜欢
  • 2021-02-13
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
  • 2015-05-18
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多