先上效果圖 

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

 

 

設(shè)計(jì)要求

1、標(biāo)簽的寬度是按內(nèi)容自適應(yīng)的

2、一行顯示的標(biāo)簽個(gè)數(shù)是動(dòng)態(tài)的,放得下就放,放不下就換行

3、默認(rèn)選中第一個(gè)

4、至少選中一個(gè)標(biāo)簽

實(shí)現(xiàn)思路

首先我們從這個(gè)效果上來看,這個(gè)標(biāo)簽是有選中和不選中狀態(tài),那我們首選的控件肯定就是用 UIButton來實(shí)現(xiàn)了。

這個(gè)小程度的重點(diǎn)就在于標(biāo)簽?zāi)茏詣?dòng)換行,還是智能的,不是固定一行多少個(gè)那種,這個(gè)我們通過計(jì)算每個(gè)按鈕實(shí)際寬度與屏幕的寬度進(jìn)行比較就能判斷是否需要換行了。

還有一點(diǎn)就是處理 至少選中一個(gè)標(biāo)簽的功能,我這里有一種方式,就是控制按鈕的 userInteractionEnabled 屬性來實(shí)現(xiàn),如果只有一個(gè)按鈕的時(shí)候就把那一個(gè)按鈕的這個(gè)屬性給設(shè)置成 NO,這樣就禁止用戶對(duì)它進(jìn)行點(diǎn)擊事件了,這個(gè)時(shí)候其它按鈕是可以正常選中的,只要選中的按鈕大于1個(gè),那就把剛才那個(gè)按鈕屬性再改成YES,這樣那個(gè)按鈕就又能點(diǎn)了。

具體看代碼

創(chuàng)建一個(gè)繼承于UIView的 XGTagView 類

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式