自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大廠高手出品:這2個(gè)蘋果控件你肯定分不清!

移動(dòng)開發(fā) 移動(dòng)應(yīng)用
今天來聊一聊蘋果規(guī)范里兩個(gè)令人迷惑的東西,action sheet 和 activity view。

hello,沒想到這么快年就要過完了,今天來聊一聊蘋果規(guī)范里兩個(gè)令人迷惑的東西,action sheet 和 activity view。

兩個(gè)組件都屬于常見組件,其中 action sheet 出現(xiàn)得更早。之后出現(xiàn)的 activity view 在布局上違背了 action sheet 的部分設(shè)計(jì)理念和規(guī)則,而蘋果規(guī)范又對(duì)此語焉不詳,因此有些同學(xué)對(duì)如何設(shè)計(jì)一個(gè)底部浮層(或者面板)產(chǎn)生了很多疑問。因此今天我們就從它的發(fā)展史出發(fā)來講講他們的差異,以及應(yīng)該如何看待“規(guī)范”??梢哉f規(guī)范的演變就是不斷吃書的過程。

Action sheet 的演變歷史

action sheet 是設(shè)計(jì)規(guī)范中提供的最早的一批標(biāo)準(zhǔn)組件,和其他組件相比,蘋果對(duì) action sheet 的定義和迭代的更新其實(shí)不算多,它的樣式也沒有特別大的變化。

在 2008 年 iPhone OS 2 時(shí)代的規(guī)范中,將 action sheet 和警告彈窗(alert)、模態(tài)視圖(modal view)都?xì)w類為視圖的不同類型。實(shí)際上“視圖 view”這個(gè)說法一直都非常模糊,我猜測這個(gè)說法來源于 MVC 設(shè)計(jì)模式,是開發(fā)兼任設(shè)計(jì)時(shí)代遺留下來的名詞?,F(xiàn)在蘋果將 view 解釋為“應(yīng)用程序用戶界面的基本構(gòu)件”,我個(gè)人把 view 按照原子系統(tǒng)理解為“頁面模板”。

從創(chuàng)立之初,action sheet 有兩種用途:

  • 收納針對(duì)用戶當(dāng)前任務(wù)的多種操作。這樣就不用在頁面上把這些操作全部展示出來。
  • 進(jìn)行風(fēng)險(xiǎn)操作之前,可以用 action sheet 來做再確認(rèn)。

根據(jù)這兩個(gè)用途,2008 年對(duì) action sheet 的說明和規(guī)則總共有以下幾點(diǎn):

  • 一定要有底部取消按鈕,除了取消按鈕之外至少提供 2 個(gè)操作按鈕
  • 點(diǎn)擊操作按鈕之后,action sheet 將會(huì)消失
  • Action sheet 上不寫說明文案,因?yàn)樗潜挥脩糁鲃?dòng)點(diǎn)擊彈出的頁面,用戶可以根據(jù)當(dāng)前任務(wù)和按鈕文案推斷出這個(gè)浮層的作用。

根據(jù)以上幾點(diǎn)我們可以看出 2008 年前后移動(dòng)端的業(yè)態(tài)還是比較簡單的。第 2 條規(guī)則讓 action sheet 是一個(gè)只能承載操作按鈕的臨時(shí)不穩(wěn)定容器,它杜絕了使用 action sheet 來做多級(jí)復(fù)雜任務(wù)的可能性,而且也并沒有提到任何和擴(kuò)展性相關(guān)的解決方案。

在 2011 年時(shí),蘋果對(duì) action sheet 進(jìn)一步作出了說明:

  • 解釋了將取消按鈕放在頁面底部的作用:鼓勵(lì)用戶看完所有選項(xiàng)后再做出選擇。
  • 強(qiáng)調(diào)風(fēng)險(xiǎn)/破壞性操作要用紅色按鈕。
  • 不允許縱向滑動(dòng),因?yàn)椋哼^長的面板可能會(huì)導(dǎo)致用戶花費(fèi)過長的時(shí)間來思考每個(gè)選項(xiàng);縱向滑動(dòng)可能導(dǎo)致誤觸。

自此,action sheet 的幾個(gè)比較重要的規(guī)范就都成型了。盡管在 2014 年取消了“點(diǎn)擊操作按鈕后 action sheet 會(huì)消失”和“action sheet 上不寫說明文案”的說明,讓它的擴(kuò)展性稍微強(qiáng)了一些,但是從蘋果對(duì)其縱向滑動(dòng)的限制、對(duì)「取消」按鈕的強(qiáng)調(diào)上,可以看出 action sheet 仍然是暫時(shí)性的,傾向于不讓用戶停留太久、完成較為復(fù)雜的任務(wù)。

在 iOS14 之后,蘋果提供了新的組件 menu 來收納操作,因此進(jìn)一步限制了 action sheet 的使用場景。iOS14 版規(guī)范將 action sheet 歸納到 alert 警告彈窗中,“只有破壞性操作可以使用 action sheet,否則都應(yīng)該使用 menu”。但在后續(xù)版本迭代中又更改了說法,現(xiàn)在 action sheet 基本上被用于承載與「用戶發(fā)起的操作」直接相關(guān)的功能,比如刪除/離開前的再確認(rèn),而不再承載“收納主頁面放不下的次級(jí)操作”的功能。

Activity view 的演變歷史

Activity view 是為了“分享”這個(gè)功能定制的。目前為止它的使用場景基本限制在分享上,很少見其他場景使用這樣的版式,但我個(gè)人認(rèn)為它在未來有擴(kuò)展場景的潛質(zhì)。

蘋果一直有“分享”功能,這個(gè)功能最開始使用 action sheet 實(shí)現(xiàn),然后在 iOS6 時(shí)期由 action sheet 改版了圖標(biāo)樣式(但是很可惜沒有說為什么這樣改)。iOS6 時(shí)代蘋果并沒有成熟的 App 間分享功能,當(dāng)時(shí)只支持 facebook、twitter、微博等幾個(gè)有限的 App 分享,因此在頁面設(shè)計(jì)上面也沒有考慮擴(kuò)展性。到了 iOS7 后,蘋果進(jìn)行了兩個(gè)重要的功能迭代:

  • 允許 App store 中海量的第三方 App 接入“分享”功能。這導(dǎo)致分享頁面上的操作數(shù)量不確定
  • 上線了 airdrop 功能,并且可能由于早期對(duì)這個(gè)功能的推廣,iOS7 允許圖片在當(dāng)前頁面內(nèi)被多次分享給不同的人,因此只能支持單次操作的 action sheet 無法再滿足訴求了。

于是基于這兩個(gè)重要的功能變化,才產(chǎn)生了我們熟悉的這個(gè)橫滑版的 Activity view。

activity view 的設(shè)計(jì)究竟想解決什么樣的問題我們不得而知,因?yàn)樗囊?guī)范中說的東西也比較語焉不詳。只能說從它最終呈現(xiàn)的效果來看,和以往的設(shè)計(jì)有這些改變:

Activity view 首次在 iOS7 的規(guī)范中登場時(shí),是一個(gè)“控制器”controller,而非一個(gè)完整頁面,這讓它可以添加“取消”按鈕成為一個(gè)類似 action sheet 的模態(tài),也可以作為頁面上的一個(gè)元素,搭配頁面左上角的“取消”按鈕。

我個(gè)人認(rèn)為這么設(shè)計(jì)其實(shí)挺冗余,頁面允許橫滑后,“取消”按鈕非要放在頁面底部的理由就根本不成立了,因?yàn)橛脩舻囊暰€并不一定是從上到下看完的,而有可能是從左到右,根本沒往下看。沒有必要為了遵守 action sheet 的規(guī)范而制作兩套功能完全一樣的版式。

  • activity view 采用了大圖標(biāo)而非縱向文字列表的樣式。從迭代趨勢來看,合理猜測是因?yàn)榻尤氲谌狡脚_(tái)后圖片 icon 的識(shí)別效率比純文字更高。
  • Activity view 允許橫滑。這也違背了 action sheet“面板不允許縱向滑動(dòng)”的理由。很明顯這樣做是因?yàn)榻尤氲谌狡脚_(tái) app 數(shù)量不確定,只能通過橫滑來保證一些系統(tǒng)操作(復(fù)制/投屏等)能夠在第一屏露出。

當(dāng)然 iOS7 的 activity view 還有些其他的問題,

基于這些問題,activity view 再次改版,也就是現(xiàn)在 iOS13 的樣式。

自此,activity view 完全脫離了早期 action sheet 規(guī)范的影響,它允許縱向滑動(dòng)、不再添加底部取消按鈕、并且支持用戶在本頁面進(jìn)行多層級(jí)的相對(duì)較為復(fù)雜的操作(比如點(diǎn)擊 airdrop 彈出二級(jí)彈窗,但不關(guān)閉此 activity view)。

總而言之,根據(jù)現(xiàn)行的蘋果規(guī)范:

  • action sheet 更加聚焦、迅速,它不支持多層級(jí)操作,更多被用于再確認(rèn)場景。
  • Activity view 暫時(shí)被用于分享場景,它更加具有擴(kuò)展性,且支持多層級(jí)操作。

「寫在最后」

上面講了這么多演變歷史相關(guān)的東西,其實(shí)我們也可以看出來像蘋果這樣的操作系統(tǒng)迭代是很謹(jǐn)慎也很慢的。從 action sheet 到 activity view,蘋果花了近 10 年時(shí)間。而我們?nèi)粘W鲈O(shè)計(jì)迭代速度和反應(yīng)時(shí)間肯定是要比蘋果快的。因此,做設(shè)計(jì)不要單純照搬操作系統(tǒng)規(guī)范,而要去思考哪些東西比較貼合場景。

責(zé)任編輯:未麗燕 來源: 優(yōu)設(shè)
相關(guān)推薦

2021-08-02 12:50:45

sessiontokenJava

2019-06-18 09:45:19

正向代理反向代理IT

2023-05-10 08:26:33

IO模型API

2021-08-04 09:00:55

閉包Go調(diào)用

2022-05-05 13:54:37

SPI機(jī)制APISPI

2021-02-25 23:40:26

Redis集群架構(gòu)

2021-06-07 09:20:56

Javascript運(yùn)算符開發(fā)

2022-04-20 10:39:08

轉(zhuǎn)換用戶消費(fèi)

2020-11-11 07:32:18

MySQL InnoDB 存儲(chǔ)

2021-03-10 08:56:37

Zookeeper

2021-01-22 08:37:02

二進(jìn)制Binary SemaReentrant L

2021-03-23 10:45:23

CookieSession前端

2021-05-09 21:57:08

數(shù)據(jù)倉庫Olap

2021-10-06 23:31:45

HibernateJPASpring Data

2023-05-26 16:42:28

2020-10-10 17:17:14

M.2SAT硬盤

2021-01-06 20:38:09

VRARMR

2019-01-08 07:43:53

路由器調(diào)制解調(diào)器

2021-02-14 22:33:23

Java字符字段

2024-02-29 09:08:56

Encoding算法加密
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)