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

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

【问题讨论】:

    标签: ios 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 的子视图在您的任何视图之上?这样,您就可以轻松控制按钮及其行为。

      【讨论】:

        猜你喜欢
        • 2021-07-09
        • 2017-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-01
        相关资源
        最近更新 更多