连续 30 天 玩玩看 ProtoPie - Day 10

https://ithelp.ithome.com.tw/upload/images/20210925/20141941Ff408YToPI.png

今天要来进行使用者点击之後跳到下一页的行为,一样延续昨天使用的介面。

所以我们选择下方的按钮(Get Started)然後选择 Tap 这个 Trigger 。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941OEgxH5ym1U.png

我们按下 Get Started 这个按钮之後希望可以 Jump 到 IoT Home 这个 Scene 。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941h4d6q4S2QY.png

Transition 讲者就随意地选一个 Fade 来转场过去,用 Preview 看一下成果,就准备到下一个范例了。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941x0PncTNbf8.png

做出 Side Bar 的互动行为

我们先在 Scenes 里面选择 IoT Home 。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941DwIjrsqNQJ.png

接着看到以下的画面。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941SV1hMqxaAx.png

我们希望可以让 Side Bar 出现,可以用哪些方法呢?

https://ithelp.ithome.com.tw/upload/images/20210925/20141941EtTcr2mA8v.png

一样先选择 Side Bar 之後,来看看有什麽 Trigger 可以用。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941TNZFqD1s7K.png

Fling 这个 Trigger

先来看看 Fling ,也就是手指滑一下(其实就是 Swipe 的意思...um 满多交友软件很爱用)。

但 Side Bar 目前并不在手机萤幕上的可见范围,要怎麽办呢?

刚学玩的 Container 可能是个好的办法,但其实 ProtoPie 有个很好用的功能。

我们选择 Side Bar 之後,右手边的最下面出现一个选项 Touch Area 。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941M6dZEebBfV.png

勾选之後,会出现下面的画面。

https://ithelp.ithome.com.tw/upload/images/20210925/201419413yqNYNcCOX.png

Touch Area 可以设定你的 Object (现在的 Side Bar)四周围有多少能被手指触摸到。

讲者说 iOS 的 guidelines 建议 44 px 我们就这样输入看看。

(因为底下有勾选Equal length for all sides ,所以随便输入一个,四周就会自动填满。)

https://ithelp.ithome.com.tw/upload/images/20210925/20141941CVTzkmGMrq.png

Side Bar 的四周立刻出现黄色的延伸范围。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941AroF2Io9YJ.png

我们只需要 Side Bar 右侧有出现在萤幕上的范围允许使用者点击。

https://ithelp.ithome.com.tw/upload/images/20210925/201419418aovWmOes0.png

因此我们底下的 Equal length for all sides 取消打勾。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941STO7tKbeeN.png

Touch Area 不只适合用在还没有在萤幕上出现的 Object ,也很适合用在比较小、手指不好点的 icon上面。

这样你延伸出去的范围,使用者都能够点得到。

接着我们来看 Fling 之後想要什麽样的 Response ,基本上就是要让 Side Bar 往右出现,那就选 Move 吧。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941OCodUbm9IZ.png

ProtoPie 这边很贴心,当你在想要 Move 到什麽地方的时候,你点一下 X 就会显示现在 Object 的 X 座标 -240 。

我们想要让 Side Bar 到 (0,0) 这个位置,输入之後、存档、点开 Preivew ,用手指一滑,Side Bar 就出来啦。

出来前
https://ithelp.ithome.com.tw/upload/images/20210925/20141941xhXqFUhKdT.png

出来後
https://ithelp.ithome.com.tw/upload/images/20210925/201419418LoOdcuflo.png

底下的 Duration 也可以调整看看,基本上就是你手指滑完之後,要让 Object 用多久的时间移动到新的位置。

Pull 这个 Trigger

接着我们试试看 Pull 这个 Trigger ,讲者说这是 ProtoPie 很特别的 Trigger 因为不一定要搭配 Response 。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941P6H1B9tZFr.png

但我们必须设定 Pull 本身可以移动多少距离(黄色提醒的 Distance)。
刚刚已经知道 Side Bar 在 -240 px 的位置,因此我们就输入240。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941W56V89j7V6.png

立刻用 Preview 玩玩看,还满有趣的,基本上就是手指压着可以把 Side Bar 拉出来。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941C1ZhgNusuk.png

如果拉超过一半(240/2=120)就会自动移动到 240,如果没有就会缩回去。

讲者也接着示范,如果 Pull 真的想要加上 Response ,例如放个 Opacity 。

他是设定 Opacity 0 但我用 50 比较好解释。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941yKDDfF4otr.png

刚刚 Pull 如果拉出来,也顺利打开到 240 px 的距离,这时就会触发下一个 Response,把画面变 50 %。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941tmUbqd8VRF.png

大概就是这个意思罗。

那 Pull 这个 Trigger 是怎麽之侦测你的行为呢?为什麽不是会判断成 Fling (Swipe或滑)。

基本上就是看两个:使用者手指移动的速度、移动的实际距离。

原来讲者这边就解释了刚刚前面发现的现象,当我们慢慢拉不到一半,Pull 就会判断我们不打算拉到底。

接着我们试另外一个方式。(记得先把前面两个 Trigger 关掉或删掉)

Drag 这个 Trigger

我们选择 Drag 这个 Trigger 并接上一个 Response : Move。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941OSelVZ7nss.png

用 Preview 一看,哇,我把 Side Bar 拉出来之後就会到处乱跑,这不是我们要的。
(说不定是你未来要的,先记起来。)

https://ithelp.ithome.com.tw/upload/images/20210925/20141941U54fQ1Ma2L.png

那我们把 Move 改成左右,那反而就是整个会被拉出来,一样可以平行乱放。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941svjmoFts93.png

因此使用下一个选项 Limit ,选择 Limit to screen 。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941Xx06Cb7tJG.png

这个满有趣的,基本上就是,Drag 出来的 Side Bar 就只能待在萤幕里面。

所以也会造成轻轻一拉,整个 Side Bar 会瞬间跳出来,因为被限制在萤幕内。

那再试试看下一个 Limit 是 Custom Limit (客制 Limit)。

https://ithelp.ithome.com.tw/upload/images/20210925/201419414TCJcKD1Ez.png

一样设定为 -240 到 0 的距离。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941dmSwIpAhDb.png

只是一 Preview 就发现,Drag 出来的,就会停在你手指放掉的地方。

讲者说有一种解法,但是更为进阶,是使用 Condition (条件)加上 Touch Up 这个 Trigger 。

但这是之後 Advanced 的课程才会提到,所以我们只好等到下一支影片。

https://ithelp.ithome.com.tw/upload/images/20210925/20141941sa1zs85s4m.png

有时候做事就是要按部就班,虽然也不不能自己玩一下摸一摸?

刚刚一直重复听着 The Wombats 的 Greek Tragedy 。

每次听到前奏就觉得,喔喔喔要来了。

然後每次听到前奏就觉得,喔喔喔又过了三分半了。


<<:  Vue.js 从零开始:v-model

>>:  Day-10 符号Symbol 跟字串String有什麽不同?

Day 31 - Redux vs XState (英文原文改作)

本篇主要论述源自於 XState 作者本人在 stackoverflow 的解释,并辅以一点我的补充...

Day 8 - Laravel Request validation

Introduce 由於我们想防范使用我们API的使用者传入恶意的参数或传入我们预期中型态的参数,我...

Day07 - this&Object Prototypes Ch3 Objects - Contents - Immutability

今天看 Immutability(不可变),作者提供适用於不同情境的四种方法,将物件设定为不可更变的...

系统分析师的养成之路—案例分享(4)

看完前面3个案例之後,不知道大家有没有什麽感想呢?其实合格的系统分析师真的可以让所服务的公司或客户其...

# Day3--向左走?向右走?再走一次?那些替你做决定的小事

条件运算 条件运算会分成三个部分,在我目前学到的Swift语言中,我认为有三种条件运算必须要整合成一...