UIAlertView 灰色按钮

Posted

技术标签:

【中文标题】UIAlertView 灰色按钮【英文标题】:UIAlertView grey out button 【发布时间】:2013-08-03 02:32:42 【问题描述】:

我有一个带有多个按钮的 UIAlertView。是否可以灰显并禁用按钮?我希望按钮是可见的,但很清楚它不能被按下。任何建议表示赞赏。

【问题讨论】:

【参考方案1】:

确保您已启用当前 VC 以实现 <UIAlertViewDelegate> 协议,然后在您的 VC 中您可以执行以下操作:

- (void)viewDidAppear:(BOOL)animated 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert!" message:@"This is an alert view" delegate:nil cancelButtonTitle:@"Cancel!" otherButtonTitles:@"Off", @"On", nil];
    alert.delegate = self;
    [alert show];



/* UIAlertViewDelegate methods */
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView 
    return NO;


// Other UIAlertViewDelegate methods...

现在为什么要显示带有没有任何功能的按钮的 UIAlertView 是一个完全不同的问题... :)

【讨论】:

【参考方案2】:

我听说很多人继承 UIAlertView,但后来我在 Apple's UIAlertView Class Reference page 上看到了这条评论:

子类化注释

UIAlertView 类旨在按原样使用,而不是 支持子类化。此类的视图层次结构是私有的,并且 不得修改。

即人们不应该试图修改 UIAlertView 的元素或行为。在更高版本的 ios(例如 iOS 8 或 iOS 7.1 或其他版本)中,行为可能会发生变化,从而破坏他们对 UIAlertView 的各种修改。

无论如何,回答您的问题:为什么不尝试创建您自己的 UIView,您可以将其添加为类似 UIAlertView 的子视图在您的任何视图之上?这样,您就可以轻松控制按钮及其行为。

【讨论】:

以上是关于UIAlertView 灰色按钮的主要内容,如果未能解决你的问题,请参考以下文章

运行按钮显示为灰色 - intellij

将按钮禁用为灰色-Objective C

为啥我的 Facebook 分享按钮是灰色的?

NX二次开发-BlockUI点击任意button,实现确定应用按钮变灰色或非灰色

idea运行按钮是灰色无法点击

ios按钮点击时的灰色框