我创建一个UICollectionView并添加一个单独的单元格,其中唯一的子视图是UIButton.该按钮具有标题和图像集.我已经验证了调试器中的图像数据是否正确.
当在屏幕上绘制按钮时,我看到文本和图像,但是图像看起来好像已经填充了色调颜色,遮挡了除了其形状之外的所有图像.
我在这里错过了什么才能将它显示为普通按钮?
更新
事实证明,这不是UICollectionView特有的,而是iOS7中的所有UIButtons.
iOS 7使按钮中的所有图像都像模板图像一样使用图像的alpha通道与色调颜色一起生成图像(非常类似于标签栏中的图像).在UIImage上有一个新的renderingMode属性,默认为“自动”,允许上下文决定(这是按钮的模板样式)
这可以使用UIImage上的新imageWithRenderingMode:方法来规避:
UIImage* myImage = [UIImage imageNamed:@"Foo.png"]; myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; [button setImage:myImage forState:UIControlStateNormal];
解决方法
避免这种情况的最简单方法是使用不同的UIButtonType. IOS 7上的UIButtonTypeSystem具有此行为,因此您可以使用自定义按钮:
UIButton *button = [UIButton buttonWithType: UIButtonTypeCustom]; [button setImage:myImage forState:UIControlStateNormal];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。