问题描述
|
之间的区别是什么:
myBarButtonItem.enabled = NO;
和
myBarButtonItem.userInteractionEnabled = NO;
每次按钮变灰吗?
解决方法
从苹果文档开始,uibarbuttonitem不具有userInteractionEnabled属性。由于它继承自UIBarItem类引用,因此也没有userInteractionEnabled属性。
并且如果您使用这行line2ѭ
您的应用程序将崩溃。
如果您不希望按下按钮,请使用以下命令:-
myBarButtonItem.enabled = NO;
另请参阅苹果文档。
对于常规按钮:-
myButton.userInteractionEnabled =否;不会对您的图像造成任何影响,您也不能同时按下它。
myButton.enabled =否;将导致阴影出现在您的按钮图像上,您也不能同时按下它。
, 我通读了文档,这是我的发现。
UIButton
从UIControl
继承布尔属性enabled
一个布尔值,确定
是否启用接收器。
指定是进行控制
已启用;否则,请指定否
它禁用了。默认值为是。
如果启用状态为“否”,则
控件会忽略触摸事件,并且
子类的绘制可能有所不同。
UIControl
从UIView
继承布尔属性userInteractionEnabled
:
一个布尔值,确定
用户事件是否被忽略,以及
从事件队列中删除。
设置为NO时,用户事件-如
触摸和键盘-用于
视图将被忽略并从
事件队列。设置为YES时,事件
通常交付给视图。
默认值为是。
由此我得出结论
button.userInteractionEnabled = NO
表示按钮看起来正常,但对触摸不响应(来自UIView
继承)。
button.enabled = NO
表示按钮为灰色,并且不响应触摸(来自(5ѭ继承)。
, UIBarButtonItem
没有名为userInteractionEnabled
的属性,只有UIView
及其子类具有该属性。
简而言之,
myBarButtonItem.userInteractionEnabled = NO;
不会使按钮变灰,这会使您的程序崩溃。
但是,将enabled
属性设置为NO
会使按钮变灰。