1

这可能是我处理过的最令人沮丧的情况,它可能有最简单的解决方案。

我有这个UIButton storeBviewDidLoad:调用我的UIViewController. 在创建按钮之前,我创建了 5 个其他按钮。

在 期间viewDidLoad:,我运行了这个方法,该方法setupFBConditions确定我的forwardB按钮对象是否应该有一个alpha0.5 并userInteractionEnabled设置为 0。在这种情况下,按钮看起来和执行它应该的方式(本质上,就像它不存在一样)。

此外,在对我的一个对象执行此特定动画期间UIView,我决定将userInteractionEnabled我的对象的属性设置restartB为 0(以便在动画期间不发生交互。该性能也很成功。

然而,当我决定写:

storeB.userInteractionEnabled = NO;
storeB.alpha = 0.5;

在动画开始时(意图保持此状态直到游戏结束或restartB再次被点击)和NSLog按钮对象,日志显示userInteractionEnabled属性为 0.5 NOalpha就像它应该的那样。但是,这些属性在任何时候都不会反映到 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,所以每次我更改属性(我认为是我的第一个实例)时,它实际上只影响第二个实例(我什至不知道存在)。UIViewUIButtonstoreB

4

0 回答 0