2013-09-24 4 views
8

私はUICollectionViewを作成し、サブビューのみがUIButtonである単一のセルを追加します。そのボタンにはタイトルと画像が設定されています。私は画像データがデバッガで正しいことを確認しました。UICollectionViewCellにUIButtonを使用すると、モノクロ/ティント画像が表示されるのはなぜですか?

ボタンを画面に描画すると、テキストと画像が表示されますが、画像は色合いの色で塗りつぶされているように見え、その形状以外のすべての画像が不明瞭になります。

通常のボタンとして表示するには、ここで何が欠けていますか?

更新

これはUICollectionViewに固有ではなく、iOS7のすべてのUIButtonsではありませんが判明しました。

iOS 7では、色調と合わせて画像のアルファチャンネルを使用して画像を生成する(タブバーの画像と同じように)ボタンのすべての画像をテンプレート画像として動作させます。コンテキストが決定できた「自動」にデフォルト設定されてUIImageに新しいされたrenderingModeプロパティが(どのボタンのテンプレートのスタイルである)があります

これは新しいimageWithRenderingMode使用して回避することができます:UIImageの方法:

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

答えて

0

これを避ける最も簡単な方法は、別のUIButtonTypeを使用することです。

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

をこのようにするとUIButtonの背景色lightText、それがボタン画像を閉じません:それはあなたの代わりにカスタムボタンを使用することができますので、この動作を持っているIOS 7にUIButtonTypeSystemです。

UIButton.backgroundColor = UIColor.lightText 
関連する問題