簡體   English   中英

UIButton backgroundImage與圖像

[英]UIButton backgroundImage versus image

我有試圖將圖像設置為AspectFit的UIButtons。 但是,使用情節提要板時遇到了一些困難,我將UIButton子類化,並以編程方式將按鈕的imageViews設置為ScaleAspectFit

#import "UIButtonWithImageAspectFit.h"

@implementation UIButtonWithImageAspectFit

-(void)awakeFromNib{
    [self.imageView setContentMode:UIViewContentModeScaleAspectFit];
}

@end

這樣效果很好,按鈕圖像顯示效果很好。

但是,現在我需要以編程方式交換按鈕的圖像,所以我嘗試了:

[_firstLetterButton setImage:[UIImage imageNamed:@"2CeadLitir.png"]];

但這不起作用,因此根據這里的建議我必須使用:

[_firstLetterButton setBackgroundImage:[UIImage imageNamed:@"2CeadLitir.png"] forState:UIControlStateNormal];

這會將圖像作為backgroundImage添加到按鈕。 現在,我必須在按鈕中顯示圖像。

  1. 可以很好地縮放為按鈕的圖片屬性,
  2. 另一個不能很好地縮放為后面顯示的背景圖像。

因此,我返回了UIButton UIButtonWithImageAspectFit的子類,並嘗試對其進行更改,以便它設置backgroundImage的contentMode而不是image

但是它似乎沒有我可以訪問的backgroundImage屬性,但是根據文檔,它確實具有

currentBackgroundImage
 Property

但是,我不能在該currentBackgroundImage上使用相同的方法setContentMode

任何想法如何解決這個問題?

您需要考慮從Apple網站上獲得的插圖。 在此處輸入圖片說明

它來自Buttons教程 特別是:


一個按鈕具有四種狀態來配置外觀-默認,突出顯示,選中和禁用。 和形式

UIButton類參考

討論區
通常,如果未為狀態指定屬性,則默認值為使用UIControlStateNormal值。 如果未設置UIControlStateNormal值,則該屬性默認為系統值。 因此,至少應設置正常狀態的值。

以下是有關不同UIControlState的信息:

對於初學者iOS開發人員,必須閱讀所有這些鏈接。

實際上,UIButton有一個方法

- (void)setImage:(UIImage *)image
        forState:(UIControlState)state

所以我要做的就是在UIButton而不是UIButton.imageView上設置圖像時設置狀態

暫無
暫無

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

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