2014-04-30 33 views
0

我尝试为UIButton设置图像。但如何设置UIButton的默认图像?如何在Objective-C的Viewdidload中将默认图像设置为UIButton?

头文件中的UIButton代码如下所示。

@property (strong, nonatomic) IBOutlet UIButton *modeChangeButton; 

而我尝试设置图像大小和UIButton的默认图像,但它不显示图像。代码如下所示。

- (void)viewDidLoad 
{ 
    self.modeChangeButton = [[UIButton alloc] initWithFrame:CGRectMake(200, 450, 60, 60)]; 
    [self.modeChangeButton setBackgroundImage:[UIImage imageNamed:@"recordmode.png"] forState:UIControlStateNormal]; 
} 

如何设置UIButton的默认图像? 在此先感谢。

+0

当你用IBOutlet声明按钮时,它应该从storyboard或xib中加载,为什么你要创建另一个uibutton实例?如果你没有加载storyboard或xib中的按钮,为什么你不在'self.view'上添加按钮。 – KudoCC

+0

您是否重复了自己的问题? http://stackoverflow.com/questions/23378603/why-the-sender-not-called-when-i-click-the-image-of-the-button-in-objective-c/23378773#23378773 – CrimsonChris

+0

参见在其他问题上给出的答案! – uiroshan

回答

1

如果您使用的是IBOutlet,则无需重新分配按钮。此外

- (void)viewDidLoad 
{ 
    self.modeChangeButton = [[UIButton alloc] initWithFrame:CGRectMake(200, 450, 60, 60)]; 
    [self.modeChangeButton setBackgroundImage:[UIImage imageNamed:@"recordmode.png"] forState:UIControlStateNormal]; 

    [self.view addSubView:self.modeChangeButton]; 
} 

,请检查您的按钮你Y位置:请尝试如下

使用IBOutlet中:

- (void)viewDidLoad 
{ 
    self.modeChangeButton.frame = CGRectMake(200, 450, 60, 60); 

    [self.modeChangeButton setBackgroundImage:[UIImage imageNamed:@"recordmode.png"] forState:UIControlStateNormal]; 
} 

使用编程方式。不管它是不是视图框架。

+0

我正在使用IBOutlet,它的工作。谢谢 !! – Wun

+0

不客气:) – Natarajan

+0

不好意思...但是'self.modeChangeButton.frame = CGRectMake(200,450,60,60);'似乎没有用... – Wun

-1
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.modeChangeButton = [[UIButton alloc] initWithFrame:CGRectMake(200, 450, 60, 60)]; 
    [self.modeChangeButton setBackgroundImage:[UIImage imageNamed:@"recordmode.png"] 
            forState:UIControlStateNormal]; 
} 

您错过了超级电话viewDidLoad。我猜这可能是问题。

+0

我已经打电话给viewDidLoad了,只是没有过去。 – Wun

+1

@Wun如果你没有发布所有相关的代码,你可以期望得到更多的答案。 – CrimsonChris

0

你忘了添加你的按钮作为子视图。

[self.view addSubview:self.modeChangeButton]; 
+0

我在xib中创建了一个按钮。如果我使用addSubview,它会添加新的按钮。 – Wun

+0

'[[UIButton alloc] initWithFrame:CGRectMake(200,450,60,60)]'给你一个全新的按钮。如果您不打算将其添加为子视图,则不要创建新的。 – CrimsonChris