我一定忽略了一些完全明显的东西?但我的按钮正确显示其图像和大小,但我根本无法显示标题。
我做了一个非常简单的测试,当我这样做时,标题甚至都没出现:
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
中,标题仍然是空白的。
这是一个错误,还是我只是在眼前错过了一些东西。
感谢额外的一双眼睛:)
答案 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);