首页 > 解决方案 > 我想用滑动手势滑动图像以及我试图做但没有工作的页面控制

问题描述

   var swipePosition = 0
    var swipeGesture  = UISwipeGestureRecognizer()
    
    @IBOutlet weak var pageCtl: UIPageControl!
    @IBOutlet weak var imageView: UIImageView!

// here is view did load
   
var swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(swiped))
        swipeRight.direction = UISwipeGestureRecognizer.Direction.right
        self.view.addGestureRecognizer(swipeRight)

        var swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(swiped))
        swipeLeft.direction = UISwipeGestureRecognizer.Direction.left
        self.view.addGestureRecognizer(swipeLeft)

// here imageNames is array of images
// swipePosition is Int

 

    let imageNames = ["cauliflower", "grapres", "Image", "lily", "mango"]
     

   

 1. @objc func swiped(gesture: UIGestureRecognizer) {
        
            if let swipeGesture = gesture as? UISwipeGestureRecognizer {
        
        
                switch swipeGesture.direction {
                case UISwipeGestureRecognizer.Direction.left:
                    if swipePosition == imageNames.count - 1
                    {
                        pageCtl.currentPage = swipePosition + 1
                        swipePosition = 0
        
                    }else{
                        swipePosition += 1
                    }
                    imageView.image = UIImage(named: imageNames[swipePosition])
        
                case UISwipeGestureRecognizer.Direction.right:
                    if swipePosition == 0 {
                        swipePosition = imageNames.count - 1
                    }else{
                        swipePosition -= 1
                    }
                    imageView.image = UIImage(named: imageNames[swipePosition])
                default:
                    break
                }
            }
        }

    }

标签: iosswift

解决方案


try this 
var arrImage = ["fruits1","fruits2","fruits3","fruits4","fruits5"]
    var arrImageName = ["strawberry","apple","orange","pomegranate","mango"]
    var position = Int ()
    @IBOutlet weak var lblTitle: UILabel!
    @IBOutlet weak var imageVw: UIImageView!
    @IBOutlet weak var pageController: UIPageControl!
    override func viewDidLoad() {
        super.viewDidLoad()
       let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
                 swipeLeft.direction = .left
                 self.view!.addGestureRecognizer(swipeLeft)
                                                  
                 let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
                 swipeRight.direction = .right
                 self.view!.addGestureRecognizer(swipeRight)
       
    }
    @objc func handleGesture(gesture: UISwipeGestureRecognizer) -> Void {
       
       if gesture.direction == UISwipeGestureRecognizer.Direction.left {
        if position < arrImage.count - 1{
            position = position + 1
            pageController.currentPage = position
            imageVw.image = UIImage(named: arrImage[position])
            lblTitle.text = arrImageName[position]
        }
       }
    else if gesture.direction == UISwipeGestureRecognizer.Direction.right {
        if position > 0 {
            position = position - 1
            pageController.currentPage = position
            imageVw.image = UIImage(named: arrImage[position])
            lblTitle.text = arrImageName[position]
        }
       }

推荐阅读