12

我刚刚更新到 XCode 5。我的应用程序中的按钮在 IB 和 iOS 6 设备上看起来不错,但在 iOS 7 设备上它们看起来像这样(它们应该覆盖整个黑色空间):

在此处输入图像描述

我有非视网膜/视网膜的图像。

我不知道该怎么做,因为我没有更改代码或 IB 中的任何内容。

编辑:

现在我发现,如果我将按钮的类型从自定义更改为系统并设置其背景而不是图像,我会得到正确的大小,但我会得到一些奇怪的阴影。

编辑2:

现在我将按钮的色调设置为“清晰的颜色”,一切看起来都很好(阴影消失了)。仍然不确定与此相关的 iOS 7 中发生了什么变化。

4

2 回答 2

4

人机界面指南特别概述了系统风格的 UIButtons 在默认情况下是如何工作的。它解释了一个系统按钮:

  • 默认情况下没有边框或背景外观...
  • 支持自定义装饰,例如边框或背景图像(要添加自定义外观,请使用类型按钮UIButtonTypeCustom并提供自定义背景图像)。

但是UIButton HIG 页面提供了更多信息,特别是:

如果您没有明确设置色调颜色,则按钮将继承其父视图的色调颜色。

这就解释了为什么在将按钮更改为 之后UIButtonTypeSystem,您突然必须重置(删除)色调。在 iOS7 中,(几乎)所有东西都有浅色。AUIButtonTypeSystem现在在 iOS7 中更适合您的需求(如果有很多需要手动更改的话会有点痛苦......)

至于为什么 iOS7 中的按钮会缩小……我同意@Joseph 关于UIViewControlleriOS7 中视图框架的评论。当 iOS7 中 ViewController 的框架发生变化时,您可能对按钮的大小设置了一些关系,这些关系在 iOS7 中无法正常播放(请参阅此 SO 问题进行讨论)。按照那里的建议,查看iOS7 过渡指南,看看你在 IB 中所做的任何事情是否与新的 iOS7-grain 相违背。

于 2013-10-07T11:33:15.853 回答
0

[button setBackgroundColor:[UIColor colorWithRed:(255.0/255.0) green:(180.0/255.0)];.

这是背景的正确代码,如果您使用图像,则使用

[UIImage imageNamed:@".png"];

于 2013-10-07T10:58:12.577 回答