UIAlertController 更改操作表的取消按钮的背景颜色

铅弹

我正在尝试使用操作表样式创建 UIAlertController,但我想将背景颜色更改为灰色。我已经能够找到一种方法来更改 UIAlertController 的背景颜色,但不是“取消”按钮。单独的取消按钮保持白色。

这是我现在拥有的代码:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];

[alert addAction:[UIAlertAction actionWithTitle:@"Option 1" style:UIAlertActionStyleDefault handler:nil]];
[alert addAction:[UIAlertAction actionWithTitle:@"Option 2" style:UIAlertActionStyleDefault handler:nil]];
[alert addAction:[UIAlertAction actionWithTitle:@"Option 3" style:UIAlertActionStyleDefault handler:nil]];
[alert addAction:[UIAlertAction actionWithTitle:@"Delete" style:UIAlertActionStyleDestructive handler:nil]];

[alert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];

UIView *firstSubview = alert.view.subviews.firstObject;
UIView *alertContentView = firstSubview.subviews.firstObject;

for (UIView *subSubView in alertContentView.subviews) {
    subSubView.backgroundColor = [UIColor darkGrayColor]; // Here you change background
}

alert.view.tintColor = [UIColor whiteColor];

[self.controller presentViewController:alert animated:YES completion:nil];

这给了我以下结果:链接

我已经访问了如何更改 UIAlertController 的背景颜色?但没有一个解决方案具有用于取消按钮背景的自定义颜色。

任何帮助,将不胜感激!

极客1706

您无法更改默认取消按钮样式的颜色。您需要为取消按钮创建自定义视图控制器,并将其设置为取消警报操作的内容视图控制器。这种方式可以单独保留取消按钮

在此处输入图片说明

let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)

alertController.addAction(UIAlertAction(title: "Option 1", style: .default, handler: nil))
alertController.addAction(UIAlertAction(title: "Option 2", style: .default, handler: nil))
alertController.addAction(UIAlertAction(title: "Option 3", style: .default, handler: nil))

alertController.addAction(UIAlertAction(title: "Delete", style: .destructive, handler: nil))

if let firstSubview = alertController.view.subviews.first, let alertContentView = firstSubview.subviews.first {
    for view in alertContentView.subviews {
        view.backgroundColor = .darkGray
    }
}

alertController.view.tintColor = .white

let cancelButtonViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "CancelButtonViewController")
let cancelAction = UIAlertAction(title: "", style: .cancel, handler: nil)
cancelAction.setValue(cancelButtonViewController, forKey: "contentViewController")

alertController.addAction(cancelAction)

present(alertController, animated: true, completion: nil)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改UIAlertcontroller背景颜色

来自分类Dev

更改UIAlertcontroller背景颜色

来自分类Dev

UIAlertController更改我的按钮颜色

来自分类Dev

更改UIAlertController所选按钮的颜色

来自分类Dev

更改UIAlertController文本颜色

来自分类Dev

在UIAlertController中更改标题的背景颜色(仅)

来自分类Dev

在UIAlertController中更改标题颜色

来自分类Dev

LAContext更改UIAlertController按钮标题

来自分类Dev

UIalertcontroller按钮序列

来自分类Dev

如何更改UIAlertController的高度?

来自分类Dev

UIAlertController的按钮在单击时更改其颜色。怎么解决?-斯威夫特

来自分类Dev

在 iOS 中更改 Alertview UIAlertController 按钮和标题颜色

来自分类Dev

在Swift中为UIAlertController设置背景颜色

来自分类Dev

Swift-TVOS取消UIAlertController

来自分类Dev

Swift UIAlertController背景色

来自分类Dev

iOS UIAlertController粗体按钮在8.3中更改

来自分类Dev

检查UIAlertController TextField以启用按钮

来自分类Dev

UIAlertController和堆叠的UIAlert按钮

来自分类Dev

UIAlertController在按钮上单击

来自分类Dev

UIAlertController和堆叠的UIAlert按钮

来自分类Dev

UIAlertController在按钮上单击

来自分类Dev

具有UIAlertControllerStyle.ActionSheet的UIAlertController中的“取消”按钮

来自分类Dev

如何在UIAlertController中以编程方式更改特定按钮文本的颜色

来自分类Dev

在Swift中更改UIAlertController上一个或特定按钮的颜色

来自分类Dev

在Swift中更改UIAlertController上一个或特定按钮的颜色

来自分类Dev

iOS 8:UIAlertController默认样式颜色

来自分类Dev

在UIAlertController中按下了返回按钮

来自分类Dev

使用菜单按钮在tvOS上关闭UIAlertController

来自分类Dev

通过工具栏按钮显示UIAlertController

Related 相关文章

  1. 1

    更改UIAlertcontroller背景颜色

  2. 2

    更改UIAlertcontroller背景颜色

  3. 3

    UIAlertController更改我的按钮颜色

  4. 4

    更改UIAlertController所选按钮的颜色

  5. 5

    更改UIAlertController文本颜色

  6. 6

    在UIAlertController中更改标题的背景颜色(仅)

  7. 7

    在UIAlertController中更改标题颜色

  8. 8

    LAContext更改UIAlertController按钮标题

  9. 9

    UIalertcontroller按钮序列

  10. 10

    如何更改UIAlertController的高度?

  11. 11

    UIAlertController的按钮在单击时更改其颜色。怎么解决?-斯威夫特

  12. 12

    在 iOS 中更改 Alertview UIAlertController 按钮和标题颜色

  13. 13

    在Swift中为UIAlertController设置背景颜色

  14. 14

    Swift-TVOS取消UIAlertController

  15. 15

    Swift UIAlertController背景色

  16. 16

    iOS UIAlertController粗体按钮在8.3中更改

  17. 17

    检查UIAlertController TextField以启用按钮

  18. 18

    UIAlertController和堆叠的UIAlert按钮

  19. 19

    UIAlertController在按钮上单击

  20. 20

    UIAlertController和堆叠的UIAlert按钮

  21. 21

    UIAlertController在按钮上单击

  22. 22

    具有UIAlertControllerStyle.ActionSheet的UIAlertController中的“取消”按钮

  23. 23

    如何在UIAlertController中以编程方式更改特定按钮文本的颜色

  24. 24

    在Swift中更改UIAlertController上一个或特定按钮的颜色

  25. 25

    在Swift中更改UIAlertController上一个或特定按钮的颜色

  26. 26

    iOS 8:UIAlertController默认样式颜色

  27. 27

    在UIAlertController中按下了返回按钮

  28. 28

    使用菜单按钮在tvOS上关闭UIAlertController

  29. 29

    通过工具栏按钮显示UIAlertController

热门标签

归档