2015-05-17 286 views
0

我在我的應用程序中有UIActionSheet。我想更改動作表格按鈕的背景顏色和按鈕的字體。我做了發現下面的代碼搜索:更改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]]; 

但是這個代碼只是改變了按鈕的字體顏色。

有沒有辦法改變按鈕的背景色?

回答

2

基本上你正在嘗試做的事情是你不應該做的事,而且應該從未做過。 UIActionSheet和U​​IAlertController提供了標準視圖,只有很少的變體和完全標準的外觀。你不應該試圖搞砸這個。

但是,不要放棄希望!沒有什麼能阻止你設計你想要的擁有視圖。在iOS 8(和iOS 7)上,這很容易,因爲您可以製作一個呈現視圖控制器,其視圖可以滑動到屏幕上並僅覆蓋一部分,就像警報表一樣。因此,請繼續創建您自己的非標準按鈕列,而不是試圖修改Apple的標準。

+0

請問您可以更多指定我該如何做到這一點:「製作一個呈現的視圖控制器,它的視圖在屏幕上滑動並僅覆蓋一部分,就像一張警報表一樣。」 –

+0

這在iOS 8中特別容易,因爲當您做一個呈現的視圖控制器,你可以指定視圖的最終尺寸/位置,它出現和消失的動畫,以及它後面是否應該出現任何「變暗」視圖。我在這裏演示:https://github.com/mattneub/custom-alert-view-iOS7/blob/master/CustomAlertViewDemo/CustomAlertViewTransitioner.swift這是一個自定義警報視圖,而不是一個操作表,但修改的例子是就像一張行動表一樣簡單。 – matt

0

我什麼工作是這樣的:

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

注意,這對背景的影響時,在酥料餅或iPhone上的呈現。如果您在應用程序的其他地方使用UICollectionView,請手動設置背景顏色以覆蓋。