在開發(fā)中虎忌,很多情況下我們都會用到搜索泡徙,而搜索下面通常都是一些'標(biāo)簽',比如熱門搜索膜蠢,常用搜索堪藐,歷史搜索等,如圖:
下面這些標(biāo)簽挑围,看起來很簡單庶橱,當(dāng)真的上手寫代碼的時(shí)候,卻發(fā)現(xiàn)無從寫起贪惹,還好我剛開始的思路沒有出現(xiàn)太大的偏差。在這里我先說一下我寫的思路吧:剛開始我是用的xib做的寂嘉,在控制器的xib中拖了多個(gè)button奏瞬,然后將每個(gè)button設(shè)置約束枫绅、寬度自適應(yīng),最后將button與button之間的距離約束和每個(gè)button寬度自適應(yīng)后的寬度約束拖到控制器的.m中硼端,然后根據(jù)自適應(yīng)后的寬度讓button之間的距離相等。做完之后,基本上是實(shí)現(xiàn)了滥嘴,button的文字也自適應(yīng)了动羽,button之間的距離也相等了,可是button的數(shù)量不固定啊镣典,需要從后臺請求兔毙。所以。兄春。澎剥。還是用純代碼寫吧。
說寫就寫赶舆,先寫了一個(gè)字面量數(shù)組哑姚,當(dāng)作從后臺請求到的數(shù)據(jù),然后通過for循環(huán)創(chuàng)建button芜茵,因?yàn)榈谝粋€(gè)button的位置是固定的叙量,只需要寬度自適應(yīng)就行,后面的button需要根據(jù)前一個(gè)button的位置進(jìn)行布局九串,還需要注意的一點(diǎn)是:除了第一個(gè)button外绞佩,就需要先判斷當(dāng)前位置剩下的寬度和下一個(gè)button自適應(yīng)后的寬度比較了,放不下的時(shí)候需要放在下一行蒸辆,放在下一行的button的起始點(diǎn)是固定的征炼。大概思路就是醬紫!
Talk is cheap, show you the code9薄W话隆!
好了拂玻,代碼就到這里酸些,我們下次再見!i苎痢魄懂!