在Swift中制定隐私策略:如何禁用UIAlertController操作按钮,直到消息滚动到底部

时间:2016-08-09 11:09:44

标签: swift uialertcontroller uialertaction

在我的iOS应用程序中,我正在尝试使用UIAlertController实现一个简单的隐私策略。根据法律,该政策必须可以被接受才能被接受 - 就像现在的大多数隐私政策一样。

从我自己的研究中我看到你可以禁用和启用UIAlertAction按钮,但我不知道如何识别何时滚动UIAlertController消息体。一直滚动到底部可能是一个要求,我有兴趣找出一种方法也可以工作。

UIAlertController

这是我上面默认查看UIAlertController的当前代码。

let alertController = UIAlertController(title: "Privacy Policy", message: privacyPolicyString, preferredStyle: UIAlertControllerStyle.Alert)

let AcceptAction = UIAlertAction(title: "Accept", style: UIAlertActionStyle.Default, handler: {(action: UIAlertAction) -> Void in

    //perform next step in login verification
})

let DeclineAction = UIAlertAction(title: "Decline", style: UIAlertActionStyle.Default, handler: {(action: UIAlertAction) -> Void in

    //User has declined privacy policy. The view resets to standard login state
})

alertController.addAction(AcceptAction)
alertController.addAction(DeclineAction)

self.presentViewController(alertController, animated: true, completion: nil)

1 个答案:

答案 0 :(得分:1)

使用本机UIAlertController可以实现如下: -

  1. 创建UIAlertAction
  2. 类型的变量
  3. enabled设为false
  4. 当您滚动到底部时,可以在滚动视图委托或任何自定义方式上进行检查,然后将enabled设置为true
  5. 以下代码中最重要的是: -

    self.actionToEnable = action
    action.enabled = false
    
  6. 代码参考: -

    weak var actionToEnable : UIAlertAction?
    
    func callbackWhenScrollToBottom(sender:UIScrollView) {
        self.actionToEnable?.enabled = true
    }
    
           let alert = UIAlertController(title: "Title", message: "Long text here", preferredStyle: UIAlertControllerStyle.Alert)
            let cancel = UIAlertAction(title: "Accept", style: UIAlertActionStyle.Cancel, handler: { (_) -> Void in
    
            })
    
            let action = UIAlertAction(title: "Decline", style: UIAlertActionStyle.Default, handler: { (_) -> Void in
    
            })
    
            alert.addAction(cancel)
            alert.addAction(action)
    
            self.actionToEnable = action
            action.enabled = false
            self.presentViewController(alert, animated: true, completion: nil)