按钮在ios7上的背景被挤压,ios6确定

时间:2013-09-24 18:55:43

标签: iphone uibutton ios7

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

enter image description here

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

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

修改

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

EDIT2:

现在我将按钮的色调颜色设置为“清除颜色”,一切似乎都正常(阴影消失)。仍不确定iOS 7中与此相关的变化。

2 个答案:

答案 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"];