iPhone SDK:带有自定义图像的 UIButton 可以显示标题吗?

Posted

技术标签:

【中文标题】iPhone SDK:带有自定义图像的 UIButton 可以显示标题吗?【英文标题】:iPhone SDK: Can a UIButton with custom images display the title? 【发布时间】:2010-12-27 19:39:42 【问题描述】:

如果我为 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 做事方式。也许我在这里做错了什么?

【问题讨论】:

【参考方案1】:

有两个地方可以在 UIButton 中使用图像,作为按钮本身,就像你正在做的那样:

setImage:forState:

或作为按钮的背景:

setBackgroundImage:forState:

如果您使用setImage,则图像会覆盖按钮的整个外观。如果您改为使用setBackgroundImage,则按钮标题仍然可见。

【讨论】:

这样一个简单的错误让我悲痛欲绝。哇!

以上是关于iPhone SDK:带有自定义图像的 UIButton 可以显示标题吗?的主要内容,如果未能解决你的问题,请参考以下文章

Iphone sdk 自定义 uiview 方向问题

如何在iPhone中创建带有小时和秒钟自定义图像的数字时钟?

如何在 iphone sdk 的 xmpp 中发送带有消息的笑脸/情感(图像)?

如何在 iphone sdk 中裁剪图像圈

UIViewContentModeScaleAspectFit iphone sdk 提供质量差的图像

设置自定义 uibuton 看起来像没有图像的 iPhone UI