如果我使用UIControlState normal和UIControlStateSelected的图像创建自定义UIButton,我仍然应该能够显示按钮的标题吗?目前我不能。这就是我创建按钮的方式:
UIImage *moveButtonImage = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"button_move_inactive" ofType:@"png"] ];
UIImage *moveButtonSelectedImage = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"button_move_pressed" ofType:@"png"] ];
self.moveButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.moveButton setImage : moveButtonImage forState : UIControlStateNormal];
[self.moveButton setImage : moveButtonSelectedImage forState : UIControlStateSelected];
[self.moveButton setTitle:@"Test" forState:UIControlStateNormal];
在这种情况下,按钮标题永远不会显示,我被迫创建自己的标签,以显示在按钮上,这似乎是一种hacky做事方式。也许我在这里做错了什么?
答案 0 :(得分:4)
有两个地方可以在UIButton中使用图像作为按钮本身,就像你正在做的那样:
setImage:forState:
或作为按钮的背景:
setBackgroundImage:forState:
如果使用setImage
,则图像会覆盖按钮的整个外观。如果您改为使用setBackgroundImage
,则按钮标题仍然可见。