簡體   English   中英

中心UIButton圖像與插圖

[英]Center UIButton image with inset

我想創建一個UIButton,但是比圖像有更大的拍子區域。 (例如:40x40按鈕,但圖像僅為20x20,居中)。

這是imageEdgeInsets的用途嗎?

我已經以編程方式設置它:(這是在包含我的按鈕的UIView中)

- (void)awakeFromNib {
    [_plusButton setImageEdgeInsets:UIEdgeInsetsMake(10, 10, 10, 10)];
    [_plusButton setContentMode:UIViewContentModeCenter];
}

並從故事板

在此輸入圖像描述

但它們似乎都不起作用。

知道了我認為您將圖像設置為按鈕的背景圖像,將其設置為圖像然后它將永遠不會拉伸(保持原始形狀)並且imageEdgeInsets將正常工作。

喜歡:

在此輸入圖像描述

下面是一個如何使用imageEdgeInsets的簡單示例。這將生成一個20x20的按鈕,其可擊中區域一直大於10像素(40x40)

    var expandHittableAreaAmt: CGFloat = 10
    var buttonWidth: CGFloat = 20
    var button = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
    button.frame = CGRectMake(0, 0, 
        buttonWidth + expandHittableAreaAmt*2, 
        buttonWidth + expandHittableAreaAmt*2)
    button.imageEdgeInsets = UIEdgeInsetsMake(expandHittableAreaAmt, 
        expandHittableAreaAmt, expandHittableAreaAmt, expandHittableAreaAmt)
    button.setImage(UIImage(named: "buttonImage"), forState: .Normal) //20x20 image
    button.addTarget(self, action: "didTouchButton:", forControlEvents: .TouchUpInside)

Swift 3&4解決方案以編程方式。

buttonOutlet.setImage(UIImage(name: "iconWhite"), for: .normal)
buttonOutlet.imageEdgeInsets = UIEdgeInsets(top: 10, left:10, bottom: 10, right: 10)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM