如何禁用UIButton?

Rah*_*hul 44 cocoa-touch objective-c uibutton ios

我正在进行一个项目,我必须在一个plist中显示Photo Library的所有照片并在UIButtons上水平显示它们.

我的应用程序还有一个编辑按钮:当用户单击此按钮时,每个按钮上都会显示一个删除标记(例如通常出现在其他iPhone/iPad应用程序中).

但这是至关重要的一点:只要出现此删除标记,就应该禁用该按钮的功能.我尝试用以下方法完成此操作:

{
  editbutton.enabled=NO;
}
Run Code Online (Sandbox Code Playgroud)

......但它既不会产生错误也不会产生效果.我该怎么办?

Meh*_*tri 104

请设置此...

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

或者你可以使用

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

  • 已在Swift 3 iOS 10中将enabled重命名为isEnabled (4认同)
  • 你不应该使用它,setEnabled:NO是正确的方法,它也会更新UI. (3认同)
  • @OMGPOP isEnabled是启用属性的合成getter. (2认同)

Sch*_*cal 8

Swift 3 及以上

editButton.isEnabled = false

setEnabled现在是 setter 方法的一部分isEnabled


Jha*_*iya 7

使用超类的enabled属性并将其设置为NO.UIControlUIButton

myButton.enabled = NO;

您也可以尝试@Marvin建议,在这种情况下,您的按钮不会响应来自用户的任何触摸事件,


小智 6

在类UIButton中重写已启用属性的setter .尝试发送消息.

 [editbutton setEnabled:NO];
Run Code Online (Sandbox Code Playgroud)