2013-09-24 40 views
8

我創建了一個UICollectionView並添加了一個只有子視圖的單元格是一個UIButton。該按鈕具有標題和圖像集。我已經驗證調試器中的圖像數據是正確的。爲什麼帶有UIButton的UICollectionViewCell具有單色/有色圖像?

當按鈕在屏幕上繪製時,我看到文本和圖像,但圖像看起來好像已經填充了色調顏色,遮住了除形狀之外的所有圖像。

我在這裏錯過了什麼,這顯示爲一個正常的按鈕應該?

更新

事實證明,這不是針對UICollectionView但iOS7而所有UIButtons。

iOS 7使按鈕中的所有圖像表現爲模板圖像,使用圖像的alpha通道與色調顏色一致以產生圖像(很像標籤欄中的圖像)。這裏面有默認爲「自動」,它可以讓背景下決定的UIImage新renderingMode屬性(這是按鈕模板樣式)

這可以通過使用新的imageWithRenderingMode被規避:對UIImage的方法:

UIImage* myImage = [UIImage imageNamed:@"Foo.png"]; 
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
[button setImage:myImage forState:UIControlStateNormal]; 

回答

0

最簡單的方法是使用不同的UIButtonType。這是UIButtonTypeSystem在IOS 7有這種行爲,所以你可以使用自定義按鈕,而不是:

UIButton *button = [UIButton buttonWithType: UIButtonTypeCustom]; 
[button setImage:myImage forState:UIControlStateNormal]; 
0

當以這種方式的UIButton的背景色lightText,也不會關閉按鈕圖像。

UIButton.backgroundColor = UIColor.lightText 
相關問題