UIBarButtonItem属性之间的区别

时间:2011-06-13 05:05:31

标签: objective-c cocoa-touch

有什么区别:

myBarButtonItem.enabled = NO;

myBarButtonItem.userInteractionEnabled = NO;

每次按钮都变成灰色吗?

3 个答案:

答案 0 :(得分:12)

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

如果您使用此行myBarButtonItem.userInteractionEnabled = NO; 您的应用会崩溃

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

对于常规按钮: -

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

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

答案 1 :(得分:5)

我阅读了文档,这是我的发现。

UIButton继承自UIControl布尔属性enabled

  

确定的布尔值   接收器是否已启用。

     

指定YES以进行控制   启用;否则,请指定NO   它被禁用了。默认值为YES。   如果启用状态为NO,则   控制忽略触摸事件和   子类可能会有不同的描述。

UIControl继承自UIView布尔属性userInteractionEnabled

  

确定的布尔值   是否忽略用户事件   从事件队列中删除。

     

设置为NO时,用户事件 - 例如   触摸和键盘 - 用于   视图被忽略并从中删除   事件队列。设置为YES时,事件   正常交付到视图。   默认值为YES。

从此我得出结论

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

  • button.enabled = NO表示该按钮显示为灰色且不响应触摸(来自UIControl继承)。

答案 2 :(得分:1)

UIBarButtonItem没有名为userInteractionEnabled的属性,只有UIView且它的子类具有该属性。

所以,简而言之,

myBarButtonItem.userInteractionEnabled = NO;

不会使按钮变灰,它会使程序崩溃。

enabled属性设置为NO灰显按钮。