我创建了一个 UICollectionView 并添加了一个唯一的子视图是 UIButton 的单元格。该按钮具有其标题和图像集。我已经在调试器中验证了图像数据是正确的。
当按钮在屏幕上绘制时,我看到了文本和图像,但是图像看起来好像已经填充了淡色,遮住了除其形状之外的所有图像。
我在这里缺少什么让这个显示为普通按钮应该?
更新
事实证明,这不是特定于 UICollectionView,而是 iOS7 中的所有 UIButton。
iOS 7 使按钮中的所有图像都像模板图像一样使用图像的 alpha 通道与色调颜色相结合来生成图像(很像标签栏中的图像)。UIImage 上有一个新的 renderingMode 属性,默认为“自动”,它让上下文决定(这是按钮的模板样式)
这可以使用 UIImage 上的新imageWithRenderingMode : 方法来规避:
UIImage* myImage = [UIImage imageNamed:@"Foo.png"];
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[button setImage:myImage forState:UIControlStateNormal];