iOS_按鈕文字圖片任意佈局,隨意定製

發表於2016-11-30

導讀

按鈕是應用中最常見的,最基本的一個控制元件。
按鈕的樣式多種多樣,系統預設樣式為左右結構,圖片在左邊,文字在右邊。系統按鈕完全無法滿足開發的需求,我們只能自己定製出想要的樣式。

在這裡分享一個自定義按鈕,文字圖片位置隨意定製的demo給大家。原始碼地址:https://github.com/HelloYeah/YLButton
歡迎Star,贈人玫瑰,手有餘香!!

酷我音樂中的部分按鈕

111338042-817ea921d9796d98
121338042-cf9d82df2e0d0fb2
  • 圖片文字,上下左右,C2 * C2 = 4,文字在圖片內部的按鈕,在酷我音樂中沒找到,但實際上也是有的,光佈局樣式至少有5種。每種佈局樣式,文字圖片大小尺寸位置也不盡相同。

實現方法

重寫下面兩個方法,返回正確的佈局即可。

雖然可以實現,每個按鈕都重寫一遍,一個專案中那需要自定義多個按鈕,每個都算一下佈局。這是有多無聊和痛苦,有什麼好的辦法可以一勞永逸,適用所有的樣式嗎?答案是肯定的!

先上效果圖

131338042-504fe24debf21f2e
自定義按鈕.gif

外界呼叫

1.xib建立

151338042-8933694effc64083

2.純程式碼建立

實現原理

1.先看.h檔案

2.實現.m檔案

總結

有沒有一種快刀斬亂麻的感覺,有沒有感覺很好用,歡迎Star。
原始碼地址:https://github.com/HelloYeah/YLButton

補充

評論裡很多人認為用分類來實現更好一些。
那我說說我的看法,分類和繼承在這裡沒有明顯的優劣差別。但分類的實現明顯要複雜一些,首先要給titleRect,imageRect設定屬性關聯,其次需要交換方法,把titleRectForContentRect:和 imageRectForContentRect:替換掉(runtime交換方法) 或者 直接覆蓋掉(覆蓋系統方法,隱患較大,不建議。)
那在使用的時候有什麼差別呢,毋庸置疑,分類和繼承都需要匯入標頭檔案,繼承,需要建立YLButton物件,而分類直接建立系統的UIButton即可。分類使用的時候可以直接拖到專案中去,繼承的話一般都會改下類的字首再使用。
有興趣的朋友可以自己用分類實現一下,難度不大。

相關文章