[英]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添加到按鈕。 現在,我必須在按鈕中顯示圖像。
因此,我返回了UIButton
UIButtonWithImageAspectFit
的子類,並嘗試對其進行更改,以便它設置backgroundImage的contentMode而不是image
但是它似乎沒有我可以訪問的backgroundImage屬性,但是根據文檔,它確實具有
currentBackgroundImage
Property
但是,我不能在該currentBackgroundImage
上使用相同的方法setContentMode
任何想法如何解決這個問題?
它來自Buttons教程 。 特別是:
州
一個按鈕具有四種狀態來配置外觀-默認,突出顯示,選中和禁用。 和形式
討論區
通常,如果未為狀態指定屬性,則默認值為使用UIControlStateNormal值。 如果未設置UIControlStateNormal值,則該屬性默認為系統值。 因此,至少應設置正常狀態的值。
對於初學者iOS開發人員,必須閱讀所有這些鏈接。
實際上,UIButton有一個方法
- (void)setImage:(UIImage *)image
forState:(UIControlState)state
所以我要做的就是在UIButton而不是UIButton.imageView上設置圖像時設置狀態
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.