iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
1
Mobile Development

iOS App初心者的30天試鍊系列 第 13

Day13:來介紹IBOutlet / IBAction , 並使用Slider做一些App運用

  • 分享至 

  • xImage
  •  

在昨天介紹完Day12-來玩UIImageView中的Mask 製作照片特效後,

接下來今天我們來介紹在程式碼常使用的IBOutlet及IBAction,

這部份我們在Day2-製作第一個Hello World App時有稍微帶到

每一個App的畫面的功能,是由Controller控制,Controller是個物件,

它的功能由它的類別決定 , 所以我們會在controller的類別裡來寫程式

UIViewController

UIViewController是最基本的View Controller 類別,定義了控制畫面的

Controller應該具備的基本功能,跟畫面有關的內建類別都是以UI開頭

從Storyboard 新拉出來的View Controller , 類別(Class)為 UIViewController

可點選下圖ViewController的紅圈(Identity Inspector )

,即可查詢到目前使用的class為ViewController

https://ithelp.ithome.com.tw/upload/images/20190920/20112182OygLW0tl79.png

當我們建立 Single View Application 專案時, Xcode會替我們建立一個view和⼀個控制

此 view的view controller,並且將此view controller類別名稱命名為ViewController,

檔名為ViewController.swift,接下來我們就在ViewController.swift上寫程式

https://ithelp.ithome.com.tw/upload/images/20190920/20112182j27o3b9br7.png

在事件(Event)發生後做某個動作(Action) , 按Button , 滑Slider都算是Event

https://ithelp.ithome.com.tw/upload/images/20190920/2011218211VeqNG4oM.png

iOS會知道User按了按鈕,產生按鈕被點選的事件,我們可以設定事件發生時想做的

事,讓事件發⽣時執行function裡的程式,如何設定事件發⽣時執行的function

就是IBAction

現在我們來講詳細點,當我們在Xcode的MainStoryboard

加上各式UI元件(Button.Slider....)後,並且將Editor模式切換為Assistant後,

https://ithelp.ithome.com.tw/upload/images/20190921/20112182QSypyxbjTT.png

我們就可以點選Slider或Label按住滑鼠右鍵拖拉一條線到MainStoryboard

https://ithelp.ithome.com.tw/upload/images/20190921/20112182kqp3hnXSu6.png

命名Outlet(IBOutlet)為Slider1

https://ithelp.ithome.com.tw/upload/images/20190921/20112182tgph2wqBT6.png

命名Outlet(IBOutlet)為UIImage1

https://ithelp.ithome.com.tw/upload/images/20190921/20112182nZKBUfdVz4.png

另外再拖拉一條線到viewDidload之下,來增加所將要執行的動作(IBAction)

https://ithelp.ithome.com.tw/upload/images/20190921/20112182KutjJNQRcP.png

將Action命名為SlideAction1

https://ithelp.ithome.com.tw/upload/images/20190921/20112182SmL1fa0f0E.png

在今年暑假街頭賽車動作片---玩命關頭也在18年後邁向第9集,我們也來製作一個App

向眾演員們致敬

https://ithelp.ithome.com.tw/upload/images/20190921/20112182Rj2KaUsBq7.png

1 建立一個新的專案,新增一個Slider,一個Label及一個ImageView,使用slider來調整

時間,顯示玩命關頭1~9集,從Slider向右水滑,將觸發它的 action function,

到時候可從Slider元件的property取得選擇的值。

https://ithelp.ithome.com.tw/upload/images/20190921/20112182DFN33zaqnH.png

2 放入玩命關頭1~9集的電影海報

https://ithelp.ithome.com.tw/upload/images/20190921/20112182zNDNPa1yFZ.png

3 Slider設定最小 & 最大數值,讓數值的範圍為1 ~ 9。

https://ithelp.ithome.com.tw/upload/images/20190921/20112182GYlaLiQKhn.png

4 滑動 slider 時,slider會停在整數的位置,程式碼如下

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var Slider1: UISlider!
    @IBOutlet weak var UIImageView1: UIImageView!
    @IBOutlet weak var UILabel1: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        }
    @IBAction func SlideAction1(_ sender: Any) {
        UIImageView1.image = UIImage(named: "\(Int(Slider1.value)).jpg")
        
        //Slider是浮點數,記得要做型別轉換,轉換成整數,不然會出錯
        
        UILabel1.text =  "這是玩命關頭第" + String(Int(Slider1.value)) + "集"
           }       
                                        }

5 slider滑到相對應的數字時,會對應到相對的照片。

https://ithelp.ithome.com.tw/upload/images/20190921/201121823BUr1Tph6n.png

6 隨Slider滑動的照片輪播功能。

https://ithelp.ithome.com.tw/upload/images/20190921/20112182h0SXxGygU8.png

Yes


上一篇
Day12:利用UIImageView中的mask 設計有趣的圖片
下一篇
Day14:來用AVFoundation , AVSpeechUtterance....製作一款會講話的App
系列文
iOS App初心者的30天試鍊31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言