我正在尝试实现以下目标:
我正在关注此问题的答案:Change background color of Cancel button for action sheet
到目前为止,使用答案我已经做到了:
但这仅适用于IOS 11,当我在IOS 12.2模拟器上运行该应用程序时,取消按钮并未与其他按钮分开。
在这里您可以看到:
我想问的是它是最新的IOS错误还是我缺少最新的IOS的信息?
这是我的代码:
let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
alertController.addAction(UIAlertAction(title: "Weekly View", style: .default, handler: nil))
alertController.addAction(UIAlertAction(title: "Monthly View", style: .default, handler: nil))
if let firstSubview = alertController.view.subviews.first, let alertContentView = firstSubview.subviews.first {
for view in alertContentView.subviews {
view.backgroundColor = .blue
}
}
alertController.view.tintColor = UIColor(red: 1.0, green: 0.2, blue: 0.33, alpha: 1)
let cancelButtonViewController = CancelButtonViewController()
let cancelAction = UIAlertAction(title: "", style: .cancel, handler: nil)
cancelAction.setValue(cancelButtonViewController, forKey: "contentViewController")
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
和CancelButtonViewController代码:
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .green
let buttonText = UILabel()
buttonText.text = "Cancel"
buttonText.font = UIFont(name: "AppleSDGothicNeo-Regular", size: 20)
buttonText.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(buttonText)
buttonText.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
buttonText.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
}
此外,每当我使用.actionSheet样式创建AlertView时,默认情况下也会收到一个Constraints错误。也许这就是原因。我进行了一些研究,发现这篇文章中的这个post他们建议忽略此错误。
错误:
我希望我的问题不会使您烦恼。因为我是IOS编程的新手。谢谢