先上效果圖
設(shè)計要求
1、標(biāo)簽的寬度是按內(nèi)容自適應(yīng)的
2、一行顯示的標(biāo)簽個數(shù)是動態(tài)的,放得下就放,放不下就換行
3、默認(rèn)選中第一個
4、至少選中一個標(biāo)簽
實(shí)現(xiàn)思路
首先我們從這個效果上來看,這個標(biāo)簽是有選中和不選中狀態(tài),那我們首選的控件肯定就是用 UIButton來實(shí)現(xiàn)了。
這個小程度的重點(diǎn)就在于標(biāo)簽?zāi)茏詣訐Q行,還是智能的,不是固定一行多少個那種,這個我們通過計算每個按鈕實(shí)際寬度與屏幕的寬度進(jìn)行比較就能判斷是否需要換行了。
還有一點(diǎn)就是處理 至少選中一個標(biāo)簽的功能,我這里有一種方式,就是控制按鈕的 userInteractionEnabled 屬性來實(shí)現(xiàn),如果只有一個按鈕的時候就把那一個按鈕的這個屬性給設(shè)置成 NO,這樣就禁止用戶對它進(jìn)行點(diǎn)擊事件了,這個時候其它按鈕是可以正常選中的,只要選中的按鈕大于1個,那就把剛才那個按鈕屬性再改成YES,這樣那個按鈕就又能點(diǎn)了。
具體看代碼
創(chuàng)建一個繼承于UIView的 XGTagView 類
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式