我刚刚升级到XCode 5。我的应用程序中的按钮在IB和iOS 6设备上看起来很好,但在iOS 7设备上却像这样(它们应该覆盖整个黑色空间):
我有非视网膜/视网膜的图像。
我不知道该怎么办,因为我没有改变任何代码或IB。
编辑:
现在我发现,如果我将按钮类型从自定义更改为系统并设置其背景而不是图像,则可以获得正确的大小,但我会得到一些奇怪的阴影。
编辑2:
现在我将按钮的色调颜色设置为“透明色”,一切似乎都没问题(阴影消失了)。仍然不确定与iOS 7相关的内容发生了什么变化。
我刚刚升级到XCode 5。我的应用程序中的按钮在IB和iOS 6设备上看起来很好,但在iOS 7设备上却像这样(它们应该覆盖整个黑色空间):
我有非视网膜/视网膜的图像。
我不知道该怎么办,因为我没有改变任何代码或IB。
编辑:
现在我发现,如果我将按钮类型从自定义更改为系统并设置其背景而不是图像,则可以获得正确的大小,但我会得到一些奇怪的阴影。
编辑2:
现在我将按钮的色调颜色设置为“透明色”,一切似乎都没问题(阴影消失了)。仍然不确定与iOS 7相关的内容发生了什么变化。
人机界面指南明确阐述了系统样式的UIButtons的默认工作方式。它解释了一个系统按钮:
UIButtonTypeCustom
的按钮并提供自定义背景图像)。然而,UIButton HIG页面提供了更多信息,具体来说:
这就解释了为什么将按钮更改为如果您没有显式设置色调颜色,则该按钮将继承其父视图的色调颜色。
UIButtonTypeSystem
后,您突然需要重置(删除)色调颜色。在iOS7中,(几乎)所有东西都有一种色调颜色。现在,在iOS7中,UIButtonTypeSystem
更适合您的需求(如果需要手动更改很多内容,可能会有点麻烦...)UIViewController
视图框架。可能您对按钮大小有一些设置关系,当ViewController的框架在iOS7中更改时,它们不太友好(请参见this SO question进行讨论)。如建议所述,请查看iOS7 transition guide,以查看您在IB中执行的任何操作是否违反了新的iOS7规则。[button setBackgroundColor:[UIColor colorWithRed:(255.0/255.0) green:(180.0/255.0)];
这是设置背景的正确代码,如果你使用图片,则使用
[UIImage imageNamed:@".png"];