UIButtonTypeCustom类型的UIButton不会显示标题(iPhone)

时间:2010-03-24 11:36:23

标签: iphone uibutton

我一定忽略了一些完全明显的东西?但我的按钮正确显示其图像和大小,但我根本无法显示标题。

我做了一个非常简单的测试,当我这样做时,标题甚至都没出现:

    CGRect frameBtn = CGRectMake(160.0f, 150.0f, 144.0f, 42.0f);
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal];
    [button setTitle:@"Hello" forState:UIControlStateNormal];
    [button setFrame:frameBtn];
    NSLog(@"Title:%@", [button currentTitle]);
    //prints "Title:Hello
    [self addSubview:button];

我有一个为我生成自定义按钮的工厂类,我认为我在那里搞砸了一些细节,所以我将上面的代码直接移到我的UIView中,标题仍然是空白的。

这是一个错误,还是我只是在眼前错过了一些东西。

感谢额外的一双眼睛:)

5 个答案:

答案 0 :(得分:90)

图像覆盖标题,您需要将图像设为背景图像以显示标题。

[button setBackgroundImage:[UIImage imageNamed:@"left_halfscreen_button.png"] 
        forState:UIControlStateNormal];

答案 1 :(得分:28)

我只是骗了spome非常相似的问题......只需设置标题颜色,我猜当前的一个是白色;)

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

答案 2 :(得分:13)

我发现了问题!

这不是图像覆盖标题。它正在被图像推开。

试试这个:

[btn setTitleEdgeInsets:UIEdgeInsetsMake(0.0, -img.size.width, 0.0, 0.0 )];

希望它有所帮助!

答案 3 :(得分:3)

当您使用UIButton时,按钮会为其框架使用一些内置尺寸。

您应该设置框架:

button.frame = CGRectMake(0, 0, width, height);

甚至更好更舒适:

[button sizeToFit];

答案 4 :(得分:0)

我遇到类似的问题,标题没有显示出来。我忘了设置框架属性:

//set the position of the button
button.frame = CGRectMake(100, 170, 100, 30);