iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 7
0
自我挑戰組

白鬍子老頭30天 Swift Ios系列 第 9

Day(7+2) lecture 5 -1 FaceView MVC

  • 分享至 

  • xImage
  •  

如何在StoryBoard預覽你的臉

在你的faceView class 上面加入 @IBDesignable
http://ithelp.ithome.com.tw/upload/images/20161224/20103833LQDSqQiPXJ.png

如何讓你的屬性在StoryBoard也可以調整

在你的屬性上加上 @IBInspectable
型態記得寫上去
http://ithelp.ithome.com.tw/upload/images/20161224/201038339ALwEeOAYw.png

這邊新增了一個Model檔案在Controller呼叫

import Foundation

struct FacialExpression {
    enum Eye : Int {
        case Open
        case Closed
        case Squinting
    }
    enum EyeBrows : Int {
        case Relaxed
        case Normal
        case Furrowed
    }
    enum MouthSmile : Int{
        case Happy
        case Normal
        case Sad
    }
    
    var  eye:Eye
    var brow:EyeBrows
    var mouth:MouthSmile
    
}

Controller如下


import UIKit

class FaceViewController: UIViewController {

    //造一個表情
    var expression:FacialExpression = FacialExpression(eye: .Open, brow: .Normal, mouth: .Happy){
        //建好後必須重畫
        didSet{
            UpdateUI()
        }
    }
    @IBOutlet var faceView: FaceView! {
        //一樣一進去重畫
        didSet{
        UpdateUI()
        }
    }
    //擺放微笑程度的字典
    private var mouthCurve = [FacialExpression.MouthSmile.Happy : 1.0,FacialExpression.MouthSmile.Normal:0.0 , FacialExpression.MouthSmile.Sad:-1.0]
    //擺放眉毛八字程度的字典
    private var browtilt = [FacialExpression.EyeBrows.Furrowed : -0.5,FacialExpression.EyeBrows.Normal:0.0 , FacialExpression.EyeBrows.Relaxed:0.5]
    
    //把資訊傳進View裡
    private func UpdateUI(){
    switch expression.eye {
        case .Open:faceView.eyesOpen = true
        case .Closed:faceView.eyesOpen = false
        default:
            faceView.eyesOpen = true
        }
        //重字典取出
        faceView.mouthCurve = mouthCurve[expression.mouth] ?? 0.0
        faceView.eyeBrowTilt = browtilt[expression.brow] ?? 0.0
    }
}

接下來就可以在Controller控制臉的表情了
http://ithelp.ithome.com.tw/upload/images/20161224/20103833k5cTCU2Oim.png


上一篇
Day(7+1) lecture 4 -3 畫臉範例
下一篇
Day(7+3) lecture 5 -2 Gesture
系列文
白鬍子老頭30天 Swift Ios30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言