更改 UIActionSheet 按钮背景颜色和按钮字体

Change UIActionSheet buttons background color and button font

我的应用程序中有一个 UIActionSheet。我想更改操作表按钮的背景颜色和按钮的字体。我搜索了以下代码:

for (UIView *_currentView in actionSheet.subviews)
        {
            if ([_currentView isKindOfClass:[UIButton class]])
            {
               //DO YOUR WORK
            }
        }

但是此代码不适用于 ios 8。对于 ios 我也发现了以下代码:

 [[UIView appearanceWhenContainedIn:[UIAlertController class], nil] setTintColor:[UIColor redColor]];

但此代码仅更改按钮的字体颜色。

有没有办法改变按钮的背景颜色?

基本上你正在尝试做的是你不应该做的事情,也不应该做的事情。 UIActionSheet 和 UIAlertController 提供 standard 视图,具有非常少量的变体和完全标准的外观。你不应该试图搞砸它。

但是,不要放弃希望!没有什么能阻止您设计自己的 视图,随心所欲。在 iOS 8(和 iOS 7)上这很容易,因为你可以制作一个呈现的视图控制器,其视图滑到屏幕上并仅部分覆盖它,就像一个警报 sheet。因此,继续创建您自己的非标准按钮列,而不是尝试修改 Apple 的标准。

对我有用的是:

UICollectionViewCell.appearance().backgroundColor = UIColor.whiteColor() // or any other color you want

请注意,这会影响显示在弹出窗口或 iPhone 上的背景。如果您在应用的其他地方使用 UICollectionViews,请手动设置背景颜色以覆盖。