我正在尝试在iOS设备上使用一些自定义按钮。这就是我所做的:我在Storyboard上添加了UIButton
并将其类型更改为Custom
。之后,我更改了“参数检查器”选项卡下的默认按钮图像。然后我使用以下两行代码来设置按钮的状态:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.button1 setImage:[UIImage imageNamed:@"unclicked.png"] forState:UIControlStateNormal];
[self.button1 setImage:[UIImage imageNamed:@"clicked.png"] forState:UIControlStateHighlighted];
}
这在模拟器上表现完美。因此我在故事板上复制了这个按钮并粘贴另外两个。当然,我删除了对button1
的引用,并将它们引用到视图控制器头文件中另外两个新创建的UIButton
出口,并在.m文件中合成它们。我将以下代码添加到上面的代码中:
...
[self.button2 setImage:[UIImage imageNamed:@"unclicked.png"] forState:UIControlStateNormal];
[self.button2 setImage:[UIImage imageNamed:@"clicked.png"] forState:UIControlStateHighlighted];
[self.button3 setImage:[UIImage imageNamed:@"unclicked.png"] forState:UIControlStateNormal];
[self.button3 setImage:[UIImage imageNamed:@"clicked.png"] forState:UIControlStateHighlighted];
...
Storyboard
上的一切似乎都很正常。但是在我运行模拟器后,只能正确显示button3
的图像。其他两个消失了,只显示c..
之类的内容。我怎么能让这三个按钮表现正常?我努力但没有取得任何进展。有人能帮帮我吗?非常感谢你。
答案 0 :(得分:1)
我想出了“c ..”的含义。这是我按钮的标题。无法加载图像时,将显示按钮标题的文本。
我通过取消选中Xcode中“File Inspector”选项卡下的“Use Autolayout”选项解决了我的问题。在没有选项检查的情况下运行模拟器后,按钮显示完美。
然后在按钮图像返回后,我还注意到代码似乎正在重建,从故事板到我的代码的所有UI连接都消失了。所以我重新连接它们。老实说,我不知道确切的原因。我想这是因为如果您选中“使用Autolayout”粘贴按钮,则新粘贴按钮的布局限制不正确。无论如何,我还不太清楚这是怎么发生的。希望知道这一点的人能解释清楚。