UIButton setImage: forState在64位架构下无法正常工作

3
我有一个现成的项目是一年前创建的。在AppStore发布了64位要求后,我不得不将arm64架构包含到我的项目中。 但是,在将arm64添加到appTarget-> Build Settings -> Valid Architectures之后,所有UIButton对象的setImage: forState方法都停止工作了,而setBackGroundImage: forState正常工作。
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 20, 20)];
[button setImage:image forState:UIControlStateNormal];

为了测试这个奇怪的问题,我创建了一个新项目,并创建了一个UIButton,使用setImage: forState方法,一切都按预期工作。
如果我删除后面的arm64架构,我的项目就没问题了。我不知道我在项目中做错了什么。 enter image description here

你找到解决方案了吗?我已经测试了三天! - Kasas
我不太记得我是如何解决这个问题的。但如果我没记错的话,应该是在UIImage(或UIColor)类别中创建了一些方法导致了这个bug。因此,请检查你的类别,看看它们是否覆盖了任何本地方法。 - Shamsiddin Saidov
我认为答案是这个:https://dev59.com/_HrZa4cB1Zd3GeqP6seV#20944188 - Kasas
是的,我记得它应该是在UIButton类别中创建的setAlpha:方法。 - Shamsiddin Saidov
1个回答

0

你应该使用UIControlState类型定义而不是int [1]

[button setImage:image forState:UIControlStateNormal]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接