如何在Objective-C中的Viewdidload中将默认图像设置为UIButton?

时间:2014-04-30 03:21:33

标签: ios objective-c uibutton

我尝试为UIButton设置Image。但是如何设置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的默认图像? 提前谢谢。

3 个答案:

答案 0 :(得分:1)

如果您使用IBOutlet,则无需重新分配按钮。请尝试以下

使用IBOutlet:

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

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

以编程方式使用:

- (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位置。是否超出视野范围。

答案 1 :(得分:0)

您忘记将按钮添加为子视图。

[self.view addSubview:self.modeChangeButton];

答案 2 :(得分:-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的电话。我猜这可能是个问题。