久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet

小編給大家分享一下iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)長(zhǎng)期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為土默特右旗企業(yè)提供專業(yè)的做網(wǎng)站、成都做網(wǎng)站,土默特右旗網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

首先看下效果圖:

樣式一:

iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet

樣式二:

iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet

樣式三:

iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet

系統(tǒng)自帶ActionSheet

iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet

其實(shí)個(gè)人感覺(jué)還是不錯(cuò)的,無(wú)奈與設(shè)計(jì)師風(fēng)格不同,所以咱就換唄...

開(kāi)始前思考

1.實(shí)現(xiàn)actionSheet效果選用什么作為載體?

要實(shí)現(xiàn)ActionSheet樣式并不難,剛開(kāi)始想來(lái)好幾種控件實(shí)現(xiàn)形式,比如可以用UIView結(jié)合UIButton來(lái)實(shí)現(xiàn),也可以用TableView這個(gè)最常用的表視圖來(lái)實(shí)現(xiàn).比較這兩者發(fā)現(xiàn),UITableView可以根據(jù)其代理實(shí)現(xiàn)不同數(shù)量的Sheet單元格,而且還有cell的selecte方法,對(duì)于每個(gè)sheet單元格的復(fù)雜樣式,我們還可以通過(guò)自定義cell來(lái)實(shí)現(xiàn),相比較Button不僅省去了動(dòng)態(tài)創(chuàng)建Button數(shù)量的開(kāi)銷,而且系統(tǒng)封裝性和可擴(kuò)展性更好.所以選用tableView是一個(gè)比較好的選擇.

2.如何封裝提高復(fù)用性?

提高復(fù)用性這一步對(duì)于當(dāng)前這個(gè)ActionSheet用TableView實(shí)現(xiàn)來(lái)說(shuō)很簡(jiǎn)單,因?yàn)閁ITableView系統(tǒng)本身就給我自帶了很多代理方法,通過(guò)代理方法我們可以控制創(chuàng)建Sheet的分區(qū)數(shù)量以及每個(gè)分區(qū)內(nèi)sheet的單元格數(shù)量.

但是作為一個(gè)自定義控件,特別是github上好的一些第三方,不僅在功能上有很大的實(shí)用性,而且每個(gè)功能的使用上也是很簡(jiǎn)便,對(duì)我們來(lái)說(shuō)使用越簡(jiǎn)單,說(shuō)明封裝性越好,在這里我個(gè)人覺(jué)得復(fù)用性的東西就是在一些模塊高度封裝的基礎(chǔ)之上的多次代碼延伸,拿這個(gè)ActionSheet來(lái)說(shuō),我最終希望的是當(dāng)別人看到我這個(gè)控件之后,只需要關(guān)心你自己的業(yè)務(wù)需求,比如需要?jiǎng)?chuàng)建什么樣式,需要?jiǎng)?chuàng)建多少個(gè)sheet單元格,關(guān)心這些就夠了,所以我暴露給你的就是對(duì)應(yīng)的給你一個(gè)創(chuàng)建樣式,給你一個(gè)創(chuàng)建多少個(gè)的方法就可以了.當(dāng)然這樣也有缺點(diǎn),封裝性越好,別人再用的時(shí)候再去擴(kuò)展性就越差,所以,在自定義一個(gè)控件的時(shí)候要盡可能多考慮到各種需求來(lái)提高你封裝的代碼適應(yīng)性.

3.確定思路

使用UITableView+自定義Cell方式,根據(jù)TableView的不同代理方法控制ActionSheet的單元格數(shù)量以及頭部及尾部分區(qū)的樣式.

實(shí)現(xiàn)

創(chuàng)建TableView,在此我是將TableView添加在View上

實(shí)現(xiàn)TableView相關(guān)代理方法

自定義TableViewCell樣式,并實(shí)現(xiàn)不同ActionSheet風(fēng)格

測(cè)試

這一步到不是有什么技術(shù)含量,我寫(xiě)在這里也是為了還原實(shí)現(xiàn)這一個(gè)Demo的思路,但是這一步其實(shí)也很重要,因?yàn)闇y(cè)試之后才能知道自己的程序?qū)懙脑趺礃?是否可行,這一步直接會(huì)影響到后續(xù)的優(yōu)化.我關(guān)注的點(diǎn)是:

  • 功能是否實(shí)現(xiàn)了?

  • 使用起來(lái)是否簡(jiǎn)單方便?

  • 實(shí)現(xiàn)同樣的功能,是否有更好的方法?

  • 不好的地方怎么優(yōu)化?

對(duì)以上關(guān)注的點(diǎn)來(lái)看,我當(dāng)時(shí)寫(xiě)完之后記錄是這樣的:

  • 功能基本實(shí)現(xiàn),但是太單一,擴(kuò)展性不高

  • 使用起來(lái)不方便,初始化代碼復(fù)雜,實(shí)現(xiàn)功能點(diǎn)代碼過(guò)于分散

  • 代碼邏輯有待改進(jìn),代碼復(fù)用性不強(qiáng)

  • UI處理比較粗糙

優(yōu)化

通過(guò)上述測(cè)試之后,我把遇到的問(wèn)題都列出來(lái),然后一一進(jìn)行優(yōu)化.

1.功能單一,擴(kuò)展性不高

通過(guò)上面的截圖能看出來(lái),我希望這個(gè)ActionSheet可以自定義不同的樣式,比如頭部和底部字體大小,顏色,高度;單元格字體大小,顏色,背景顏色以及行高,還有單元格不同的樣式,是只需要文字還是需要圖標(biāo)加文字.這些應(yīng)當(dāng)提供給用戶做更多的選擇.但是這些樣式并不是剛需,所以可以作為額外代碼配置.可以單獨(dú)設(shè)置某一項(xiàng),也可以一項(xiàng)都不設(shè)置,那就會(huì)以默認(rèn)樣式來(lái)展示.通過(guò)屬性方式提供給用戶配置更多樣式:

iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet

2.使用起來(lái)不方便,初始化代碼復(fù)雜,實(shí)現(xiàn)功能點(diǎn)代碼過(guò)于分散.

對(duì)于一個(gè)基本控件的初始化,蘋(píng)果API給了我們很好的實(shí)例,創(chuàng)建時(shí)我們最好把這個(gè)控件最基本的需求放在初始化方法里,比如創(chuàng)建一個(gè)view 我們可以使用

UIView *view = [[UIView alloc] init];

也可以使用

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

這兩種方法都是可以的,但是像TableView創(chuàng)建時(shí),我們使用的

UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 0, 0) style:(UITableViewStyle)]

這個(gè)方法會(huì)帶有一個(gè)style參數(shù),這時(shí)我們就可以很方便快速的創(chuàng)建一個(gè)tableView的實(shí)例,但是像tableView的backgroundColor這樣的參數(shù)我們就不會(huì)放在初始化方法里.對(duì)于一個(gè)ActionSheet的控件,我將標(biāo)題,單元格標(biāo)題,取消按鈕標(biāo)題以及代理作為初始化方法需要的參數(shù),最終的初始化方法如下:

iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet

3.實(shí)現(xiàn)同樣的功能,是否有更好的方法?

這個(gè)問(wèn)題可以通過(guò)實(shí)現(xiàn)過(guò)程中遇到的問(wèn)題相結(jié)合說(shuō)明,Demo中有一個(gè)設(shè)置圓角的屬性,通過(guò)設(shè)置圓角可以實(shí)現(xiàn)和蘋(píng)果官方提供的ActionSheet類似的風(fēng)格,當(dāng)時(shí)這個(gè)sheet單元格第一個(gè)和最后一個(gè)都是半邊圓角,但是中間沒(méi)有圓角的樣式,我想過(guò)要不要通過(guò)判斷樣式用背景圖片來(lái)實(shí)現(xiàn),但是仔細(xì)一想這樣還需要借助美工切圖,在性能差不多的情況下盡量不依賴美工實(shí)現(xiàn)我覺(jué)得比較可取,所以我又采用了使用貝塞爾曲線定向切圓角的方法來(lái)實(shí)現(xiàn).

以上是“iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文題目:iOS如何開(kāi)發(fā)一個(gè)好看的ActionSheet
路徑分享:http://sd-ha.com/article22/jjcjcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、微信公眾號(hào)Google、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)