2015年12月30日 星期三

iOS筆記:讓UIButton的觸碰區域變大

key word: iOS UIButton touch area
簡單來說有兩個方法:
 1、弄一個比較大的隱形的UIButton在上面
 2、把原本的button變大,然後設定button. contentEdgeInsets(或是titleEdgeInsets, imageEdgeInsets)的值





2可以用code也能用storyboard
contentEdgeInsets跟html的padding相似:view的邊框跟內容的間距。

你的button加大多少pixel,edge的總和要等於加大的長度,才能讓button看起來跟之前一樣

用storyboard舉例:
constraint用的是Equal Height,然後right button長寬比是1:1
然後加個20的constraint上去,也就是說長寬各加了20像素上去
(Multiplier在這裡沒有影響)

Edge上下跟左右總和都是20

程式的話就只要一行:

button.contentEdgeInsets = UIEdgeInsetsMake(10.0f, 10.0f, 10.0f, 10.0f);


比較要注意的是:
因為是整個button變大了,所以基本上background最好是透明的,image會跟text互擠,所以最偷懶就是背景圖上打文字壓成一張圖,放在button .image上





沒有留言:

張貼留言