这可能是我处理过的最令人沮丧的情况,它可能是最简单的解决方案。
我已UIButton
storeB
在我viewDidLoad:
的{{1}}调用期间正确初始化了UIViewController
viewDidLoad:
。在创建按钮之前,我创建了5个其他按钮。
在setupFBConditions
期间,我运行名为forwardB
的此方法,该方法确定我的alpha
按钮对象的userInteractionEnabled
是否应为0.5 UIView
且userInteractionEnabled
设置为0在这种情况下,按钮看起来和执行它应该的方式(基本上,就像它不存在)。
此外,在我的restartB
个对象之一执行的特定动画中,我决定将storeB.userInteractionEnabled = NO;
storeB.alpha = 0.5;
对象的restartB
属性设置为0(这样就不会发生交互在动画期间。表演也很成功。
然而,当我决定写:
NSLog
在动画开始时(打算保持此状态直到游戏结束或再次点击userInteractionEnabled
)和NO
按钮对象,日志显示{{1属性为alpha
,storeB
为0.5,就像它应该的那样。但是,这些属性决不会反映到UI中。
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>>
之后)结束时的日志报告:
_retainCount
框架正确,alpha和交互设置正确,超视图框架(0,0,320,568)正是它应该是的。
***********第二次更新**************
如果有人发现此内容有用...请检查UIView
/ UIButton
的{{1}}属性,并在考虑所有操作时查看它是否异常高宾语。我的保留计数是4,应该是2,所以每次我更改属性(我认为是我的第一个storeB
实例),它实际上只影响第二个实例(我没有甚至知道存在。)