Swift Outlet & Action

Moonshine 
Sep 1, 2018 · 5 min read

出場角色:主人公x、高仿真戀愛機器人swift、超然理智的engineer

讓我們來role play情境學習體驗這糾結的三角關係~


高仿真機器人具備了很多原廠設定的功能
每個高功能都簡化為一次次的行為事件簿
有的時候也會以按鈕的樣態呈現
更配合每位購買者而提供客製化按鈕建置服務

因涉及廠商內部極重要之商業機密
故官方功能請詳官方技術文件
以下約略簡述客製化2種button功能做代表

1. wordButtonPressed

內建原廠甜言蜜語模式
加載ML及語文判讀能力(可加購:弦外之音套件)
但主人公向原廠表示偏好是要呆萌型的
所以請engineer調低ML跟判讀力設定值
於是engineer便在wordButtonPressed的內容下設定參數

@IBAction func wordButtonPressed(_ sender: UIButton) {
var 主人公type: Robot = 呆萌
//使用var變數 因為喜好可能改變或多種喜好
ML(能力值:0.1)
//func
語文判讀力(能力值:0.1)
//func
delay(withDuration:8x) //func
傻笑(頻率:3x, 萌屬性:1) //func
眼睛(瞳孔放大度:0.2, 放光程度:0.1, 閃爍度:0.2) //func
耳朵(補音雷達:開啟, 靈敏度:1, 收音範圍:目標物方圓10m) //func
//聲音(音頻:開心, 音速:慢, 口齒清晰度:臭拎呆, 模式:撒嬌慵懶_週末模式2)
//
已卸載弦外之音加購套件
}
//請忽略縮排問題

2. sayGoodbyeButtonPressed

基本上主人公跟機器人是住一起的
主人公害羞內向話不多
有時候也想體驗戶外的戀愛行為模組
就會帶機器人外出遊山玩水、探訪民間疾苦
然後最重要是(假裝)分離道別的摸門
一定要享受眾人矚目眼光投射來的讚嘆才有買機器人的存在感跟價值
所以特別要求engineer設定以下魔性化參數

var count = 0@IBAction func sayGoodbyeButtonPressed(_ sender: UIButton) {
count += 1
if count < 18 {
dramaQueen(表現度:8x, 力道:0.2, 肢體糾纏度:1, 箝制技巧:0.8)
眼睛(瞳孔放大度:0.8, 放光程度:0.3, 閃爍度:0.5) //這是要變女鬼了嗎?
聲音(音頻:低, 音速:慢, 口齒清晰度:臭拎呆, 模式:嬌嗔)
combo技(癱軟掛身!, 未語淚先流!, 歇斯底里哭喊!)
遇到長輩或認識的人(反應時間: 0.00001秒, 日常模式:全開, 正常值:1)
} else if count == 18 {
switch 矚目度 {
case 0...100:
count = 0
case 100...200:
count = 0
case 200...300:
count = 0
case 萬眾矚目電視台出機採訪直升機出動空拍國安高層震動:
傻笑(頻率:1, 萌度:1)
眼睛(瞳孔放大度:0.2, 放光程度:0.1, 閃爍度:0.2)
散步模式(親密度:手牽手, 狀態:五指交纏)
print("親愛的,那我們回家吧~")
default:
break
}
}
}

有了上述action button設定參數的input之後
讓我們來看看在實際場景中
會發生什麼樣的output在機器人身上吧
由於
例2有國安疑慮需多方考量
讓我們僅以例1的內容做說明。


日常場景: 週末早晨的廚房,晴光大好 + 秋風送爽

主人公:來沖杯咖啡吧~
(20分鐘過後)
機器人:咖啡? 那是什麼啊? 可以吃嗎?
主人公:……(已喝完杯盤都洗好了)
(筆記:要請engineer再調整一下數值)

請大家注意以下這段機器人反應:

機器人:咖啡? 那是什麼啊? 可以吃嗎?

當engineer幫機器人設定action內容
在主人公按下wordButtonPressed之後
機器人因聽到主人公聲音而觸發內部行為⇒外在表現
便顯示出跑馬燈的字幕:咖啡? 那是什麼啊?可以吃嗎?
這個字幕就是output,也就是我們常常要拉選的outlet
outlet就像主打display功能的物件
用來show字幕、播放照片之類的

你可以讓這個物件像背景般
一開始就指定存在內容寫在viewDidLoad
eg:讓機器人的字幕板持續365天連閏年多出的1天也絕對不會放過任何人地輪番播放”主人公我❤️你”

也可以寫在某個action內,隨著被觸發的行為事件而出現
eg:在聽到主人公告白說愛你時,字幕板才出現”主人公我❤️你”


這樣是不是有讓大家比較了解outlet & action之間的關係了呢
而且越來越smart的語法竟然想到了劃分區域做預設值的判斷條件

好的~
最後讓我們再來複習一下

最後要搭配的歌曲能不是Swift的這高科技感Bad Blood嘛~

Hope you enjoy my work and thank you.

Moon 沐

IOS / Swift / Xcode

Moonshine 

Written by

On the way to iOS Developer. moonshinelucky1@gmail.com

Moon 沐

Moon 沐

IOS / Swift / Xcode

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade