【问题标题】:incorrect content image with autolayout 3 uibutton same width proportionaly to width screen具有自动布局 3 uibutton 的内容图像不正确,宽度与屏幕宽度成比例
【发布时间】:2017-07-17 12:44:15
【问题描述】:

我有 3 个按钮,它们的宽度与屏幕宽度成比例, 并且没有约束错误,

(=leadingsuperview)button1(=HSpace)button2(=HSpace)button3(=trailingsuperview)

button2 与 button 1 宽度相同

button3 与 button 1 宽度相同

button1 中心垂直于 superview

按钮 2 和 3 居中垂直于按钮 1

button1的高度和它的宽度1:1的比例成正比

button2 和 3 等于 button1 的高度

结果:

3 个按钮具有正确的框架(我知道它为什么正确,因为我将背景颜色设置为黄色并且它的真实宽度相同)

但不正确的部分是,为什么只有第一个按钮的图像较小,其他按钮的图像尺寸正确。

已经在 interfacebuilder 中设置如下:

[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
[btn setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];

3 个按钮具有相同的属性,

但是为什么只有第一个按钮的图像内容不正确,就像由于某种原因它已经适合方面(我没有设置方面适合或其他)。

更多详情请看以下图片:

在界面生成器处:

在编译设备上:

有人经历过吗?

ps:对于 iOS >=8.4

【问题讨论】:

    标签: ios uibutton interface-builder aspect-ratio ios-autolayout


    【解决方案1】:

    我找到了解决办法:

    这是因为我有自定义类属性,该属性在接口生成器的运行时构建。

    我忘了删除第一个按钮的自定义属性,这解释了为什么只有第一个按钮不正确。

    【讨论】:

      【解决方案2】:

      我认为 Stack View 在这种情况下会做得更好。

      在界面生成器处:

      在属性检查器处:

      button1 的高度与它的宽度成正比 1:1 的比例 button2 和 button3 没有任何约束

      希望这可以帮助你:)

      【讨论】:

      • 对不起,我忘了说这是 iOS >= 8.4,
      • UIStackView 适用于 iOS >=9.0,将编辑描述。
      • @YosephWijaya 你有 gmail 吗?我根据您的描述编写了一个演示,但按钮显示正确。
      • 嗯,真的吗?是的,当然,给我发邮件 info@yoseph.ws
      • 我已经发给你了。
      【解决方案3】:

      您可能使用了 UIButton 的 image 属性,而不是与其他按钮不同的 backgroundImage。您可以通过这样的代码设置backgroundImage

      [button setBackgroundImage:anImage forState:UIControlStateNormal]

      或者,您可以使用 UIButton 的文件检查器在情节提要上设置它。

      【讨论】:

      • 所有人都在使用 UIButton 的 image 属性而不是 backgroundImage,但出于某种原因我想使用图像的属性而不是背景图像属性。
      • 或者我应该在这种情况下使用backgroundImage 吗?我使用backgroundImages 属性尝试了您的解决方案,它显示了正确的内容图像。
      • 太棒了。 *竖起大拇指
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2013-08-05
      相关资源
      最近更新 更多