UI按钮的图像和标题未设置

时间:2016-08-10 12:47:49

标签: ios objective-c uibutton

我正在尝试在UIButton上实现图像和标题。 UIButton的尺寸是86 x 96.我需要在顶部嵌入尺寸为86 x 76的图像,在图像下方嵌入尺寸为86 x 20的标题。

代码是

UIButton *generalButton = [UIButton buttonWithType:UIButtonTypeCustom];
[generalButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
generalButton.titleLabel.font = [UIFont fontWithName:@"Arial" size:13];
[generalButton setImageEdgeInsets:UIEdgeInsetsMake(0,0,20,0)];
[generalButton setTitleEdgeInsets:UIEdgeInsetsMake(76,0,0,0)];
generalButton.frame = CGRectMake(32,20,86,96);
[generalButton setImage:[UIImage imageNamed:@"flower_icon.png"] forState:UIControlStateNormal];
[generalButton setTitle:@"Flower" forState:UIControlStateNormal];
[self addSubview:generalButton];  

但问题是只显示图像,而标题没有显示。如果我通过注释代码隐藏图像,那么标题就会完美显示出来。

请帮助

2 个答案:

答案 0 :(得分:0)

试试这段代码:

 UIButton *generalButton = [UIButton buttonWithType:UIButtonTypeCustom];
[generalButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
generalButton.titleLabel.font = [UIFont fontWithName:@"Arial" size:13];
[generalButton setImageEdgeInsets:UIEdgeInsetsMake(0,0,20,0)];
[generalButton setTitleEdgeInsets:UIEdgeInsetsMake(30,-50,0,0)];
generalButton.frame = CGRectMake(32,20,86,96);
[generalButton setImage:[UIImage imageNamed:@"RepresentativeIcon.png"] forState:UIControlStateNormal];
[generalButton setTitle:@"Flower" forState:UIControlStateNormal];
[self.view addSubview:generalButton];

答案 1 :(得分:0)

请尝试以下代码:

UIButton *generalButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [generalButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    generalButton.titleLabel.font = [UIFont fontWithName:@"Arial" size:13];
    [generalButton setImageEdgeInsets:UIEdgeInsetsMake(20,22,20,0)];
    [generalButton setTitleEdgeInsets:UIEdgeInsetsMake(50,-30,0,0)];
    generalButton.frame = CGRectMake(32,20,86,96);
    [generalButton setBackgroundColor:[UIColor yellowColor]];
    [generalButton setImage:[UIImage imageNamed:@"Facebook"] forState:UIControlStateNormal];
    [generalButton setTitle:@"Flower" forState:UIControlStateNormal];
    [self.view addSubview:generalButton];

注意:

[generalButton setImageEdgeInsets:UIEdgeInsetsMake(20,22,20,0)];
[generalButton setTitleEdgeInsets:UIEdgeInsetsMake(50,-30,0,0)];

这两行主要用于重新定位标题和图像,因此根据图像高度和图像设置所有参数。宽度和标题长度。

在此代码中,我更改了图像名称,并更改了按钮的颜色,因此请根据您的数据进行更改。

希望这会对你有所帮助。