Xcode 的各種 UI 元件研究筆記(上篇)

◆作業2–2:研究 Xcode 中的 UI 元件及屬性欄位◆

這次研究的 UI 元件很多,因為寫起來篇幅太長,所以分上下篇
上篇包含:iOS 常見元件
下篇包含:文字相關(LabelTextField、TextView)、圖片相關(ImageView
示範版本為:Xcode 12 beta

可搭配 蘋果 iOS Human Interface Guidelines(以下簡稱 HIG) 一起閱讀(作業還沒寫出來,所以先放原文網址 😂)下面「使用注意點」部份會擷取一些 HIG 重點寫入

範例圖片會盡量以 iPhone 內建的 APP 為主,畢竟內建的 App 介面一定會符合自家規範 ´-ω-)b

iOS 基本常見 UI 元件

Segmented Control

HIG 中的敘述:Controls→Segmented Control

範例:電話通話紀錄中分為 ─ 全部通話/未接來電

。使用場合:功能/分類的切換。例如:選擇性別、尺寸,看數據時選擇「以週顯示」或「以月顯示」…等
。使用注意點:最少包含兩個選項,雖然沒有上限數,但是 HIG 中有明確指出──在 iPhone 上使用 Segmented Control 時最好不要超過 5 個

✱ Segmented Control 屬性相關欄位 ✱

Segmented Control 置入時的預設外觀

❶ Segments
數量(要分幾段)
預設是最少數量的兩段

❷ Segment
選取其中一個分段按鈕
要先選擇才能對裡面的內容(下面的屬性2、3、4、5)做變動,沒有選的話只會變到第一個按鈕(因為預設是第一個,也就是 Segment 0)

0是第一個標籤,1是第二個標籤…以此類推(0是第一個,可以,這很程式w)

❸ Title
選取中的 Segment 顯示的文字
有圖就沒文字,有文字就沒圖,只能擇一

❹ Image
選取中的 Segment 顯示的圖片

不過通常好像比較常看到文字就是了🤔

❺ Selected
選取中的 Segment 是否被設定為「預設選取」(優先顯示此分段內容)

左:將第三個分段按鈕設為「預設選取」/右:App Store 中的也有分段按鈕的預設選取

上面右邊 GIF 圖中,付費/免費 App 排行點進去是都排行榜頁面,並用分段按鈕分開:
從首頁點 付費 App 排行→預設選取「付費 Segment」
從首頁點 免費 App 排行→預設選取「免費 Segment」

另外,這裡的 Selected 是指 Behavior 那個
一開始按成下面 State 那區的 Selected 但沒研究出差在哪…(以後有發現再來補完)

— — —

Slider

HIG 中的敘述:Controls→Sliders

範例:最看用到的 Slider ─ 調整螢幕亮度

。使用場合:滑動的方式設定數值
。使用注意點:不要使用 Slider 做音量的調節(HIG 內文寫到 App 內需調節變化可以使用 VolumeView。目前還不知道是什麼,總之先寫起來放)

✱ Slider 屬性相關欄位 ✱

Slider 置入時的預設外觀

❶ Value
預設值(只能是數字)
會依照下面最小/最大值的相對位置,決定那顆圓形頭的位置在哪裡(如下方 GIF )
因為 Slider 實際上是可以滑動的,這個 Value 是指使用者未調整時的預設值

❷ Minimum
最小值(只能是數字)

❸ Maximum
最大值(只能是數字)

Value、Minimum、Maximum 的數值會影響外觀的相對位置

❹ Min Image
最小值(左邊)的圖片

❺ Max Image
最大值(右邊)的圖片

通常常會看到用圖片定義 Slider 的最大值/最小值(圖為 iPhone 朗讀功能,選擇速度的值是用烏龜(慢)跟兔子(快)來表示,很有趣 XD)

❻ Min Track
起點最小值~目前位置的填充顏色(白話:左邊滑出來的顏色)

❼ Max Track
目前位置~終點最大值的填充顏色(白話:右邊還沒滑到的顏色)

❽ Thumb Tint
那顆圓形頭(會拉著滑的那顆)的顏色

左:StoryBoard畫面&設定/右:實際模擬器畫面

— — —

Switch

HIG 中的敘述:Controls→Switches

範例:iPhone 使用者幾乎每天都用得到的 Switch ─ 鬧鐘、網路開/關 都用得到

。使用場合:跟字面一樣就是開關。兩個互斥狀態(打開和關閉)之間的可視切換(By HIG&估狗翻譯)
。使用注意點:避免添加文字來敘述開關的值,以免讓使用者搞混

在 Switch 加上文字讓使用者搞混的自身經歷,以前這個頁面下方還沒有那兩行說明文字,每次訂都疑惑這樣到底是要餐具還是不要餐具…( ˘•ω•˘ )

✱ Switch 屬性相關欄位 ✱

Switch 置入時的預設外觀

❶ State
開/關(On / Off)預設是 On

❷ On Tint
開關打開時後面的填充色
(這個顏色只有在
State 是 On 時才會顯示

在關閉狀態設 On Tint 也是不會顯示 der(名字都寫「On」了,就是只有 On 才有 (ㆆᴗㆆ))

❸ Thumb Tint
開關圓圓頭(?)的顏色
不過平常在一般 App 裡似乎不常看到設定 Thumb Tint 的狀況 🤔

On Tint:預設(綠)/Thumb Tint:灰色(關閉時 On Tint 不會顯示,但是 Thumb Tint 會)

— — —

Activity Indicator View

HIG 中的敘述:Controls→Progress Indicators

範例:應該沒有人沒看過吧(天啊光看截圖就讓人煩躁感十足 XD)

。使用場合:Loading、讀取中(沒有實際進度)例如:頁面、影片的讀取
。使用注意點:
1.如果有明確進度,請用進度條(Progress View)
2.保持旋轉,讓使用者知道還在運作
3.可以在等待時加上一些文字訊息,並避免使用術語(因為使用者也看不懂所以沒有意義)

✱ Activity Indicator View 屬性相關欄位 ✱

Activity Indicator View 置入時的預設外觀

❶ Style
外觀樣式,選擇有:
中(預設)/大

白色、白色(大)、灰色(但這三種分項標題明白寫著不推薦使用 XD)

左:中/右:大

❷ Color
顧名思義就是變更圈圈的顏色

❸ Animating
常見的轉圈圈動畫(反而更少看到沒動畫的吧 (´⊙ω⊙`) HIG 都寫要讓他保持旋轉了 XD)
StoryBoard 的畫面上看不出來,但打開模擬器真的會轉喔!

左:StoryBoard畫面&設定/右:實際模擬器畫面

— — —

Progress View

HIG 中的敘述:Controls→Progress Indicators

範例:Safari 開啟網頁時的載入進度條

。使用場合:明確進度顯示的進度條,比如:下載資料、網頁載入
。使用注意點:回報準確的進度,不要謊報,如果是無法量化的進度應該使用 Activity Indicator View

✱ Progress View 屬性相關欄位 ✱

Progress View 置入時的預設外觀

❶ Style
Default:預設外觀,左右兩邊有切圓角
Bar:高度比 Default 扁一點、左右兩邊是沒有圓角的方形

❷ Progress
進度條的起始位置(只能是數字)
跟 Slider 的 Value 一樣實際上是會變動的,所以這裡輸入的值是指進度條
剛跑出來時顯示的位置(像上面範例左圖,剛開啟網頁時的進度條位置)

❸ Progress Tint
起點~目前進度位置的填充顏色(白話:左邊已經跑完的顏色)

❹ Track Tint
目前進度位置~終點的填充的顏色(白話:右邊還沒跑到部分的顏色)

設定 Progress 跟 Track 的顏色

❺ Progress Image
起點~目前進度位置中填充圖片(白話:在左邊已經跑完的地方放圖片)

❻ Track Image
目前進度位置~終點中填充圖片(白話:在右邊還沒跑到的部分放圖片)
Tint 跟 Image 只能選一個放,
有上色就不能放圖,放圖又上色就只會顯示顏色設定

稍微用 SF Symbol 設定圖片,設定不同 Progress 的值會拉伸圖片(值越大會把圖拉越長)而且如果 Progess 跟 Track 都設定圖片的話,兩張圖會疊在一起,看起來蠻詭異的,可能要用特定規範的圖吧 (´・_・`)

Progress 如果設定顏色跟圖片,就只會顯示顏色(Track 亦然)
左:設定 Progress Image/右:Progress Image 跟 Track Image 都設定的話,圖片會疊在一起

比較好奇的是:Progress View 用模擬器跑的時候還是靜態的(停在起始位置預設值的位置)可是實際出現的場合明明會是顯示動態 (。ŏ_ŏ)???

— — —

Page Control

HIG 中的敘述:Controls→Page Control

範例:天氣 App 設定多個城市時會有 Page Control 告訴你現在位於哪個分頁/把很多 App 丟到一個資料夾時也會出現 Page Control

。使用場合:多頁狀態時顯示全部分頁數量和目前位置的點點(雖然不是 App,但是網站很多放 Banner 的地方也會有 Page Contorl 的設計)
。使用注意點:
1.點(頁面)的數量最好不要超過 10 個,最多不超過 20 個。且超過 20 個點時,代表系統要載入 20 個頁面會很耗時
2. Page Control 應該常置於頁面底部,才不會影響頁面中的顯示內容

✱ Page Control 屬性相關欄位 ✱

Page Control 置入時的預設外觀(預設顏色是白色跟半透明,所以後面放了灰色背景方便辨識)

❶ # of Pages
總共有幾頁

注意:預設置入時只有三個點點,所以物件框只能容納三個,物件框沒有拉開的話,就算加到五百個點還是永遠只會顯示三個
用好幾次想說都沒增加點點,還以為是 Xcode 壞掉,結果最後發現只是
框框太小才無法顯示 😂

物件框寬度要拉開,多設的點點才會顯示出來

❷ Current
現在停留的頁面
注意:0是指第一個點,1是指第二個點

❸ Hides for Single Page
只有一頁(一個點點)時隱藏 Page Control
我的理解:假如今天我要放在首頁 Banner 只有一張(平常可能五六張),就不要出現 Page Contorl 的點點

有勾跟沒勾的差異

❹ Tint Color
其他頁(非現在停留頁)的顏色

❺ Current Page
現在停留的這頁的顏色

變更 Current 的位置時,在 StoryBoard 中顏色是不會跟著變的(除非 Current 是 0,也就是在第一頁)不過用模擬器開啟時,顏色會正常顯示

左:只有 Current 設為 0 時才會顯示 Current Page 設定的顏色/右:用模擬器會正常顯示設定色

— — —

Date Picker

HIG 中的敘述:Controls→Pickers

範例:提醒事項在設定日期與時間時的 Picker(左邊只設定日期,右邊是日期跟時間都設定)

。使用場合:選擇時間、日期使用的 Picker (另有非日期時間用的 Picker,例如 HIG 放的範例為選擇血型的 Picker,Xcode 上的元件為 PickerView)
。使用注意點: iOS14的 Date Picker 有新的樣式(日曆樣式)

Date Picker 置入時的預設外觀。模擬器出現的是 iOS14 新的 Picker 外觀,看了有點不習慣 XD(StoryBoard 畫面上卻還是以前的外觀)

✱ Date Picker 屬性相關欄位 ✱

❶ Style
Automatic:預設是 iOS14 新的日曆造型 Picker
Wheels:以前的滾輪造型 Picker

但是 Mode 選擇倒數計時器的話,就算選 Automatic 也是出現滾輪型喔(日曆型只適用日期/時間)

左:新版 Date Picker/中:傳統(?)滾輪 DatePicker/右:選擇倒數計時器時不會變成日曆型

❷ Mode
Time:只顯示時間(PM,AM/時/分)
Date:只顯示日期(年/月/日)
Date and Time:日期與時間(月/日/PM,AM/時/分)
Count Down Timer:倒數計時器(時/分)

四種不同的模式

❸ Locale
區域,同一個語言也有不同國家可以選
玩出一個很有趣的:同樣是英文,選美國會出現AM/PM選項,英國是直接用 24 時制(如下右 GIF 圖)

左:光中文就很多區可以選/右:同語言就算不同國家也會有微妙的差異

❹ Interval
時間間隔,最小為 1 分鐘(可以選擇的值有:1~6、10、12、15、20、30 分鐘)

❺ Date
起始日期(當 Picker 一跳出來時看到的日期)
Current Date:使用時的當天日期
Custom:客製(自己填入)

❻ Minimum Date
日期/時間最小值

Maximum Date
日期/時間最小值

對日期設定最小值/最大值,常見的例如:註冊需要成年認證的網站時,生日在某個年份以後的就無法選擇(不過大家都謊報不是公開的祕密嗎(喂))

2002 以後出生的小碰友還不能註冊色色的網站喔 ^_<

— — —

Visual Effect View with Blur

範例:打開資料夾/長按 App 時都會出現的背景模糊外觀

。使用場合:背景模糊的毛玻璃效果(特別是彈出視窗時的背景,如上圖)

✱ Visual Effect View with Blur 屬性相關欄位 ✱

Visual Effect View with Blur 置入時的預設外觀

❶ Blur Style
效果也太多種!看學長姊上一個版本也才 5 個 😂
因為太新好像也搜尋不太到各個效果的使用情境
(憑感覺的概念?(誤))

常見的:Extra Light、Light、Dark、Regular、Prominent(偷偷摳比萊點特別大大的整理)

選擇有~夠~多(GIF 錄起來有點讓模糊效果失真就是了)

❷ Vibrancy&Vibrancy Style
好像也是新的功能,一開始先查看看單字原意:充滿活力、振動、振奮、活耀 (。ŏ_ŏ)???啥?
不過搜尋 Vibrancy Blur 就有比較多範例:

圖片來源:https://www.raywenderlich.com/167-uivisualeffectview-tutorial-getting-started

目前已知:
1.Vibrancy 打勾後模糊會消失,下面會多一個 Vibrancy Style 的屬性可以調整,但裡面每個選項差在哪還未知
2.好像是用在:背景已經模糊,上方物件想要有穿透背景的效果時(但試做出來即使物件顏色是白色或其他色,按下 Vibrancy 後都會像下右圖一樣變同一種黑色)

左:照著搜尋到的圖試做看看,但無法做到完全一樣/右:看不出差異和用途的 Vibrancy Style 的各種屬性選擇

其實下篇也快寫完了,只是回首一看發現寫在一篇的話篇幅實在太長,所以分成上下篇(Peter 我上禮拜都沒出作業是因為都在寫這個啦 (›´ω`‹ ))

總之下篇見 (“ ̄▽ ̄)-o█ █o-( ̄▽ ̄”)/

--

--