0

我正在尝试在 iOS 设备上使用一些自定义按钮。这就是我所做的:我UIButton在 Storyboard 上添加了一个并将其类型更改为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..只显示了类似的东西。我怎样才能使三个按钮的行为正确?我很努力,但没有任何进展。有人可以帮我吗?太感谢了。

4

1 回答 1

1

我弄清楚了“c..”是什么意思。这是我的按钮的标题。当图像无法加载时,将显示按钮标题的文本。

我通过取消选中 Xcode 中“文件检查器”选项卡下的“使用自动布局”选项解决了我的问题。在我运行模拟器而不检查此选项后,按钮显示完美。

然后在按钮图像返回后,我还注意到代码似乎正在重建,并且从情节提要到我的代码的所有 UI 连接都消失了。所以我重新连接它们。老实说,我不知道这其中的确切原因。我猜这是因为如果您粘贴选中了“使用自动布局”的按钮,那么新粘贴的按钮的布局约束不正确。无论如何,我仍然不太清楚这是如何发生的。希望有了解的大侠解释一下。

于 2013-08-09T17:36:39.450 回答