多个自定义按钮,只有一个显示正确

时间:2013-08-09 16:07:48

标签: ios uibutton

我正在尝试在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..之类的内容。我怎么能让这三个按钮表现正常?我努力但没有取得任何进展。有人能帮帮我吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

我想出了“c ..”的含义。这是我按钮的标题。无法加载图像时,将显示按钮标题的文本。

我通过取消选中Xcode中“File Inspector”选项卡下的“Use Autolayout”选项解决了我的问题。在没有选项检查的情况下运行模拟器后,按钮显示完美。

然后在按钮图像返回后,我还注意到代码似乎正在重建,从故事板到我的代码的所有UI连接都消失了。所以我重新连接它们。老实说,我不知道确切的原因。我想这是因为如果您选中“使用Autolayout”粘贴按钮,则新粘贴按钮的布局限制不正确。无论如何,我还不太清楚这是怎么发生的。希望知道这一点的人能解释清楚。

相关问题