UIBarButtonItem属性之间的区别

edo*_*o42 10 cocoa-touch objective-c

有什么区别:

myBarButtonItem.enabled = NO;
Run Code Online (Sandbox Code Playgroud)

myBarButtonItem.userInteractionEnabled = NO;
Run Code Online (Sandbox Code Playgroud)

按钮每次都变灰吗?

Gyp*_*psa 12

从apple文档中,uibarbuttonitem没有userInteractionEnabled属性.因为它继承自UIBarItem类引用,所以它也没有userInteractionEnabled属性.

而且,如果您使用此行,myBarButtonItem.userInteractionEnabled = NO; 您的应用程序将崩溃.

如果您不想按下按钮,请使用: - myBarButtonItem.enabled = NO; 另请参阅Apple文档.

对于常规按钮: -

myButton.userInteractionEnabled = NO; 将不会对您的图像图像产生任何影响,也无法按下它.

myButton.enabled = NO; 将导致阴影出现在您的按钮图像上,您也无法按下它.

  • 那个普通的UIButton怎么样? (3认同)

Pen*_*One 5

我仔细阅读了文档,这是我的发现.

UIButton继承自UIControlboolean属性enabled

一个布尔值,用于确定接收器是否已启用.

指定YES以启用控件; 否则,指定NO以禁用它.默认值为YES.如果启用状态为NO,则控件忽略触摸事件,子类可能以不同方式绘制.

UIControl继承自UIViewboolean属性userInteractionEnabled:

一个布尔值,用于确定是否忽略用户事件并从事件队列中删除.

设置为NO时,将忽略用于视图的用户事件(如触摸和键盘),并将其从事件队列中删除.设置为YES时,事件将正常传递到视图.默认值为YES.

从此我得出结论

  • button.userInteractionEnabled = NO表示该按钮看起来正常但不响应触摸(来自UIView继承).

  • button.enabled = NO表示按钮变灰并且不响应触摸(来自UIControl继承).