100道iOSApp謎題#54 愛你最好的距離 ? slider 練習

可愛的卡娜赫拉又來了,找了這張兔兔和P助可愛互動的圖來練習這次的作業:愛你最好的距離

一開始先利用mac的Preview裡編輯模式中的Smart Lasso加上去背的功能將圖中的兩個角色分開。

  1. 水平等速移動:等速移動就是P助往右移動的距離和兔兔往左移動的距離相等,移動的距離可以從Slider的最大最小值,以及每單位移動的距離來調整,這邊找到最好的效果是以每單位移動20距離,Slider的範圍則是0~12。
let speed = sender.value * 20.0
leftImageView.frame.origin.x = CGFloat(65 + speed)
rightImageView.frame.origin.x = CGFloat(605 — speed)
水平等速移動

2. 調整透明度,距離越遠圖片越透明:alpha的值是0~1,依Slider變化的話就直接取Slider值的比例

leftImageView.alpha = CGFloat(sender.value/12)
rightImageView.alpha = CGFloat(sender.value/12)
距離越近圖片越清楚

3. 變速的水平移動:把原本等速移動的距離再乘上一個倍數,這裏把不想被戳臉的P助,用比原本慢一半的速度像右移動(0.5倍速),如此一來,想戳P助臉的兔兔就是比原本再快一半的速度像左移動(1.5倍速)。

let speed = sender.value * 20.0
leftImageView.frame.origin.x = CGFloat(65 + speed * 0.5)
rightImageView.frame.origin.x = CGFloat(605 - speed * 1.5)
變速水平移動

4. 加上segmentedControl切換等速和變速兩種模式:把原本分開練習的code結合再一起,讓App能一次呈現兩種移動速度。

用SegmentedControl切換移動速度

--

--