簡體   English   中英

設置UIButton的框架,但保持圖像大小相同

[英]Set frame of UIButton but keep image same size

我的應用程序中有一個UIButton,它很小。 有時很難敲打它。 有沒有辦法在按鈕周圍留出20px的邊距,以使圖像大小相同? 這是我的代碼:

self.helpButton= [UIButton buttonWithType:UIButtonTypeCustom];
[self.helpButton setImage:[UIImage imageNamed:@"Info Button.png"] forState:UIControlStateNormal];
[self.helpButton addTarget:self
           action:@selector(showHelp)
 forControlEvents:UIControlEventTouchUpInside];

if ([[ UIScreen mainScreen ] bounds ].size.height == 568 ) {
    self.helpButton.frame = CGRectMake(280.0, 528.0, 20, 20);
} else {
    self.helpButton.frame = CGRectMake(280.0, 440.0, 20, 20);
}

基本上,我希望有一個較大的區域可以點擊,但要保持按鈕的大小相同。

嘗試使用setImageEdgeInsets。 檢查一下。

  if ([[ UIScreen mainScreen ] bounds ].size.height == 568 ) {
         self.helpButton.frame = CGRectMake(280.0, 528.0, 40, 40);
  } else {
         self.helpButton.frame = CGRectMake(280.0, 440.0, 40, 40);
  }

  [self.helpButton setImageEdgeInsets:UIEdgeInsetsMake(10, 10, 10, 10)];

子類化UIButton並重寫backgroundRectForBounds:contentRectForBounds:或適用於您的用例的任何方法)。

如果按鈕背景色是透明的,則可以增加按鈕的大小。 我最近對帶有小圖片的刪除按鈕做了此操作:

    UIImage *deleteImage = [UIImage imageNamed:@"btnDelete"];

    CGSize btnSize = CGSizeMake(deleteImage.size.width*2, deleteImage.size.height*2);

    self.deleteButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [_deleteButton setImage:deleteImage forState:UIControlStateNormal];

    _deleteButton.frame = CGRectMake(0,0,btnSize.width,btnSize.height);

暫無
暫無

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

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