我刚刚更新到XCode 5.我的应用程序中的按钮在IB和iOS 6设备上看起来很好,但在iOS 7设备上它们看起来像这样(它们应该覆盖整个黑色空间):
我有非视网膜/视网膜的图像。
我不知道该怎么做,因为我没有改变代码或IB中的任何内容。
修改
现在我发现,如果我将按钮类型从自定义更改为系统并设置其背景而不是其图像,我会得到正确的尺寸,但我会得到一些奇怪的阴影。
EDIT2:
现在我将按钮的色调颜色设置为“清除颜色”,一切似乎都正常(阴影消失)。仍不确定iOS 7中与此相关的变化。
答案 0 :(得分:4)
人机界面指南专门概述了系统样式的UIButtons默认如何工作。 It explains that a system button:
UIButtonTypeCustom
和类型的按钮
提供自定义背景图片)。然而,UIButton HIG page提供了更多信息,具体而言:
如果您没有明确设置色调颜色,该按钮将继承其superview的色调颜色。
这解释了为什么在将按钮更改为UIButtonTypeSystem
后,您突然需要重置(删除)色调颜色。在iOS7中,(几乎)所有都有一种色彩。现在在iOS7中UIButtonTypeSystem
更适合您的需求(如果有很多手动更改的话会有点痛苦......)
至于iOS7中按钮缩小的原因...我同意@Joseph关于iOS7中UIViewController
视图帧的评论。在iOS7中ViewController的框架发生变化时,你可能会对按钮的大小设置一些关系(参见this SO question进行讨论)。按照那里的建议,查看iOS7 transition guide,看看你在IB中做的任何事情是否与新的iOS7格式相反。
答案 1 :(得分:0)
[button setBackgroundColor:[UIColor colorWithRed:(255.0/255.0) green:(180.0/255.0)];
。
这是正确的背景代码,如果您使用的是图像,请使用
[UIImage imageNamed:@".png"];