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