Skip to content

Instantly share code, notes, and snippets.

@edwardinubuntu
Created November 1, 2016 08:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save edwardinubuntu/2ea48b9f77a99ce7c0a72a9b0c939c80 to your computer and use it in GitHub Desktop.
Save edwardinubuntu/2ea48b9f77a99ce7c0a72a9b0c939c80 to your computer and use it in GitHub Desktop.
tibame.com iOS Swift 程式語言 界面 2 - HelloPageControl

在畫面上顯示多張照片,當手勢往左滑、往右滑可以切換顯示。設定計時器,重複每三秒鐘畫面可以自動切換。

在 Storyboard 要完成:

  • Image View
  • Page Control
  • Left Gesture Recognizer
  • Right Gesture Recognizer
//
// ViewController.swift
// HelloPageControl
//
// Created by Edward Chiang on 27/10/2016.
// Copyright © 2016 TKU. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet var leftGestureRecognizer: UISwipeGestureRecognizer!
@IBOutlet var rightGestureRecognizer: UISwipeGestureRecognizer!
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var pageControl: UIPageControl!
var slideCount = 0
let imageNames = ["Scene01", "Scene02", "Scene03"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.imageView.isUserInteractionEnabled = true
self.imageView.image = UIImage(named: imageNames[0])
self.imageView.contentMode = .scaleAspectFill
self.imageView.addGestureRecognizer(self.leftGestureRecognizer)
self.imageView.addGestureRecognizer(self.rightGestureRecognizer)
Timer.scheduledTimer(withTimeInterval: 3, repeats: true) { (timer) in
self.slideCount += 1
let swipeToIndex = self.slideCount % self.imageNames.count
self.imageView.image = UIImage(named: self.imageNames[swipeToIndex])
self.pageControl.currentPage = swipeToIndex
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func swipe(_ sender: AnyObject) {
if let gesture : UISwipeGestureRecognizer = sender as? UISwipeGestureRecognizer {
// From left to right
if gesture.direction == .right {
if self.pageControl.currentPage > 0 {
self.pageControl.currentPage -= 1
self.imageView.image = UIImage(named: imageNames[self.pageControl.currentPage])
}
} else if gesture.direction == .left {
if self.pageControl.currentPage < self.imageNames.count {
self.pageControl.currentPage += 1
self.imageView.image = UIImage(named: imageNames[self.pageControl.currentPage])
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment