为什么userInteractionEnabled属性不能处理特定的UIButton?

时间:2016-12-05 20:41:08

标签: ios objective-c uibutton alpha setuserinteractionenabled

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

我已UIButton storeB在我viewDidLoad:的{​​{1}}调用期间正确初始化了UIViewController viewDidLoad:。在创建按钮之前,我创建了5个其他按钮。

setupFBConditions期间,我运行名为forwardB的此方法,该方法确定我的alpha按钮对象的userInteractionEnabled是否应为0.5 UIViewuserInteractionEnabled设置为0在这种情况下,按钮看起来和执行它应该的方式(基本上,就像它不存在)。

此外,在我的restartB个对象之一执行的特定动画中,我决定将storeB.userInteractionEnabled = NO; storeB.alpha = 0.5; 对象的restartB属性设置为0(这样就不会发生交互在动画期间。表演也很成功。

然而,当我决定写:

NSLog

在动画开始时(打算保持此状态直到游戏结束或再次点击userInteractionEnabled)和NO按钮对象,日志显示{{1属性为alphastoreB为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实例),它实际上只影响第二个实例(我没有甚至知道存在。)

0 个答案:

没有答案