UIButton自定義圖文位置殖演,上圖下文

QQ20170817-0.png

之前遇到上圖下文、下圖上文的item年鸳,都是用UIImageView + Label的方式解決趴久,過于麻煩。一直想通過設置button的圖文位置來實現這種需求搔确,但是無奈EdgeInsets總是設置不對彼棍,每次使用每次去算已添。某次在github上看到一個demo受到了啟發(fā),經我使用過程中改良后滥酥,現在只需要設置DirectionButton的圖片方位更舞、圖片和文字的間距,即能隨心所欲實現button的圖文位置坎吻,即便文字寬度大于圖片寬度缆蝉,也能居中顯示,實現需求瘦真。

//按鈕中圖片的位置
public enum ImageAlignment: Int {
    //  默認圖片在上
    case top = 0
    case left = 1
    case bottom = 2
    case right = 3
}

class DirectionButton: UIButton {
    var imageAlignment: ImageAlignment = .top //默認上圖下文
    var spaceBetweenTitleAndImage: CGFloat = 10
    override func layoutSubviews() {
        super.layoutSubviews()
        let space = self.spaceBetweenTitleAndImage
        let titleW = self.titleLabel?.bounds.size.width
        let titleH = self.titleLabel?.bounds.size.height
        let imageW = self.imageView?.bounds.size.width
        let imageH = self.imageView?.bounds.size.height
        
        let btnCenterX = self.bounds.size.width / 2 //按鈕中心點X的坐標(以按鈕左上角為原點的坐標系)
        let imageCenterX = btnCenterX - titleW!/2; //imageView中心點X的坐標(以按鈕左上角為原點的坐標系)
        //let titleCenterX = btnCenterX + imageW!/2;//titleLabel中心點X的坐標(以按鈕左上角為原點的坐標系)
        
        switch imageAlignment {
        case .top:
            self.titleEdgeInsets = UIEdgeInsetsMake(imageH!/2 + space/2, -imageW!, -(imageH!/2 + space/2), 0)
            self.imageEdgeInsets = UIEdgeInsetsMake(-(titleH!/2 + space/2), btnCenterX - imageCenterX, titleH!/2 + space/2, -(btnCenterX - imageCenterX))
            self.imageView?.center.x = (self.titleLabel?.center.x)!
            self.titleLabel?.textAlignment = .center
            
        case .left:
            self.titleEdgeInsets = UIEdgeInsetsMake(0, space/2, 0,  -(space/2))
            self.imageEdgeInsets = UIEdgeInsetsMake(0, -(space/2), 0, space/2)
            
        case .bottom:
            self.titleEdgeInsets = UIEdgeInsetsMake(-(imageH!/2 + space/2), -imageW!, imageH!/2 + space/2, 0)
            self.imageEdgeInsets = UIEdgeInsetsMake(titleH!/2 + space/2, btnCenterX - imageCenterX,-(titleH!/2 + space/2), -(btnCenterX - imageCenterX))
            self.imageView?.center.x = (self.titleLabel?.center.x)!
            self.titleLabel?.textAlignment = .center
            
        case .right:
            self.titleEdgeInsets = UIEdgeInsetsMake(0, -(imageW! + space/2), 0, imageW! + space/2)
            self.imageEdgeInsets = UIEdgeInsetsMake(0, titleW! + space/2, 0, -(titleW! + space/2))
        }
    }
}

使用方式刊头,其他設置與UIButton無異

let testButton = DirectionButton()
testButton.imageAlignment = .top //上圖下文
testButton.spaceBetweenTitleAndImage = 3 //圖片與文字之間的間距
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市诸尽,隨后出現的幾起案子原杂,更是在濱河造成了極大的恐慌,老刑警劉巖您机,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件穿肄,死亡現場離奇詭異,居然都是意外死亡际看,警方通過查閱死者的電腦和手機咸产,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仲闽,“玉大人脑溢,你說我怎么就攤上這事±敌溃” “怎么了屑彻?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵毁嗦,是天一觀的道長艰猬。 經常有香客問我,道長仆救,這世上最難降的妖魔是什么云矫? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任膳沽,我火速辦了婚禮,結果婚禮上让禀,老公的妹妹穿的比我還像新娘。我一直安慰自己陨界,他們只是感情好巡揍,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著菌瘪,像睡著了一般腮敌。 火紅的嫁衣襯著肌膚如雪阱当。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天糜工,我揣著相機與錄音弊添,去河邊找鬼。 笑死捌木,一個胖子當著我的面吹牛油坝,可吹牛的內容都是我干的。 我是一名探鬼主播刨裆,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼澈圈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了帆啃?” 一聲冷哼從身側響起瞬女,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎努潘,沒想到半個月后诽偷,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡疯坤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年渤刃,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贴膘。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡卖子,死狀恐怖,靈堂內的尸體忽然破棺而出刑峡,到底是詐尸還是另有隱情洋闽,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布突梦,位于F島的核電站诫舅,受9級特大地震影響,放射性物質發(fā)生泄漏宫患。R本人自食惡果不足惜刊懈,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望娃闲。 院中可真熱鬧虚汛,春花似錦、人聲如沸皇帮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽属拾。三九已至将谊,卻和暖如春冷溶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尊浓。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工逞频, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栋齿。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓苗胀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親褒颈。 傳聞我的和親對象是個殘疾皇子柒巫,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • 發(fā)現 關注 消息 iOS 第三方庫、插件谷丸、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,093評論 4 62
  • 光 總在遠方 幸好 遠方有光
    海暢閱讀 256評論 0 0
  • 看到朋友圈一個女孩經常寫筆記堡掏,心動之余也下載了個簡書,把每日自己的所思所想記錄一下也是好的刨疼,若干年后翻看一下泉唁,可能...
    田青玲閱讀 269評論 0 1
  • 昨天周日,國慶調換工作日揩慕,而我周日的鬧鈴是11點亭畜。 早上醒來就9點半了,晚上加班睡得有點晚迎卤,頭痛拴鸵,就請假一上午。 ...
    嵐風的葉子閱讀 275評論 0 0