这可能是我处理过的最令人沮丧的情况,它可能有最简单的解决方案。
我有这个UIButton
storeB
在viewDidLoad:
调用我的UIViewController
. 在创建按钮之前,我创建了 5 个其他按钮。
在 期间viewDidLoad:
,我运行了这个方法,该方法setupFBConditions
确定我的forwardB
按钮对象是否应该有一个alpha
0.5 并userInteractionEnabled
设置为 0。在这种情况下,按钮看起来和执行它应该的方式(本质上,就像它不存在一样)。
此外,在对我的一个对象执行此特定动画期间UIView
,我决定将userInteractionEnabled
我的对象的属性设置restartB
为 0(以便在动画期间不发生交互。该性能也很成功。
然而,当我决定写:
storeB.userInteractionEnabled = NO;
storeB.alpha = 0.5;
在动画开始时(意图保持此状态直到游戏结束或restartB
再次被点击)和NSLog
按钮对象,日志显示userInteractionEnabled
属性为 0.5 NO
,alpha
就像它应该的那样。但是,这些属性在任何时候都不会反映到 UI。
storeB
我什至不是最后一个要添加到层次结构的视图(尽管它是最后一个UIButton
)。我不知道为什么这些更改没有生效。
我不会再发布任何代码了,因为除了上面的两行之外没有什么可发布的了。问题+解决方案显然很简单。
************ 更新 **************
这是我的一个滑动手势操作(之后storeB.userInteractionEnabled = NO;
)结束时的日志报告:
<UIButton: 0x1585ae80; frame = (270 8; 42 42); alpha = 0.5; opaque = NO;
userInteractionEnabled = NO; layer = <CALayer: 0x15899da0>>
<UIView: 0x1592bba0; frame = (0 0; 320 568); layer = <CALayer: 0x15934ae0>>
框架是正确的,alpha 和交互设置是正确的,superview 框架(0,0,320,568)正是它应该是的。
*********** 第二次更新 **************
万一有人发现这很有用...检查您的/的_retainCount
属性,并在考虑对对象执行的所有操作时查看它是否看起来异常高。我的保留计数应该是 2,所以每次我更改属性(我认为是我的第一个实例)时,它实际上只影响第二个实例(我什至不知道存在)。UIView
UIButton
storeB