UIButton中setTitleEdgeInsets和setImageEdgeInsets的使用


UIButton上titleLabel和imageView的顯示原則。

1.當button.width < image.width時,只顯示被壓縮后的圖片,圖片是按fillXY的方式壓縮。

2.當button.width > image.width,且 button.width < (image.width + text.width)時,圖片正常顯示,文本被壓縮。

3.當button.width > (image.width + text.width),兩者並列默認居中顯示,可通過button的屬性contentHorizontalAlignment改變對齊方式。

setTitleEdgeInsets和setImageEdgeInsets的使用

想兩改變兩個子控件的顯示位置,可以分別通過setTitleEdgeInsets和setImageEdgeInsets來實現。需要注意的是,對titleLabel和imageView設置偏移,是針對它當前的位置起作用的,並不是針對它距離button邊框的距離的。如果只有title,那它上下左右都是相對於button的,image也是一樣;如果同時有image和label,那這時候image的上左下是相對於button,右邊是相對於label的;title的上右下是相對於button,左邊是相對於image的。

button的屬性contentHorizontalAlignmen(水平對齊方式)默認是居中的,同時button還有一個contentVerticalAlignment(豎直對齊方式)屬性默認也是居中的。在我們不改變這兩個值的情況下,需要明白默認情況下,button的image和label是緊貼着居中的。直接這樣設置很麻煩很燒腦,了解一下就可以了,在使用時不推薦!

把button的contentHorizontalAlignment設為居左時,contentVerticalAlignment設為居上時,可以很方便的通過EdgeInsets改變兩個子控件的位置。這樣圖片和文字就在button的左上角了。且圖片在前,文字在后。相當於image的初始位置變為了(0,0)title的初始位置變為了(image.width,0)。這樣就可以像類似frame那樣去設置值了,便於理解。當然根據需要你可以只設置水平的或者垂直的對齊方式。

 

源文地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM