自动布局 3 uibutton 的内容图像不正确,宽度与屏幕宽度成比例
incorrect content image with autolayout 3 uibutton same width proportionaly to width screen
我有 3 个按钮,它们的宽度与屏幕宽度成比例,
并且没有约束错误,
(=leadingsuperview)button1(=HSpace)button2(=HSpace)button3(=trailingsuperview)
按钮 2 与按钮 1 的宽度相同
按钮 3 与按钮 1 的宽度相同
button1 中心垂直于 superview
按钮 2 和 3 居中垂直于按钮 1
button1 高度与其宽度成正比1:1比率
button2 和 3 等于 button1 的高度
结果:
3 个按钮具有正确的框架(我知道为什么它是正确的,因为我将背景颜色设置为黄色并且它的真实宽度相同)
但不正确的部分是,为什么只有第一个按钮图像较小,而其他按钮的图像尺寸正确。
已经在 interfacebuilder 中设置如下:
[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
[btn setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
3个按钮相同属性,
但为什么只有第一个按钮的图像内容不正确,就像它出于某种原因的纵横比一样(我没有设置纵横比或其他任何设置)。
有关更多详细信息,请参见下面的这些图片:
在 interface-builder:
编译设备:
有人经历过吗?
ps: 对于 iOS >=8.4
您可能使用了 UIButton 的 image
属性 而不是 backgroundImage
,这与其他按钮不同。您可以通过这样的代码设置 backgroundImage
;
[button setBackgroundImage:anImage forState:UIControlStateNormal]
或者,您可以使用 UIButton 的文件检查器在故事板上设置它。
我认为 Stack View 在这种情况下会做得更好。
在界面构建器中:
在属性检查器中:
button1 的高度与其宽度成正比1:1
button2 和 button3 没有任何约束
希望对您有所帮助:)
我找到了解决方案:
这是因为我有自定义 class 属性 在界面构建器的运行时构建。
我忘记删除第一个按钮自定义 属性,这解释了为什么只有第一个按钮不正确。
我有 3 个按钮,它们的宽度与屏幕宽度成比例, 并且没有约束错误,
(=leadingsuperview)button1(=HSpace)button2(=HSpace)button3(=trailingsuperview)
按钮 2 与按钮 1 的宽度相同
按钮 3 与按钮 1 的宽度相同
button1 中心垂直于 superview
按钮 2 和 3 居中垂直于按钮 1
button1 高度与其宽度成正比1:1比率
button2 和 3 等于 button1 的高度
结果:
3 个按钮具有正确的框架(我知道为什么它是正确的,因为我将背景颜色设置为黄色并且它的真实宽度相同)
但不正确的部分是,为什么只有第一个按钮图像较小,而其他按钮的图像尺寸正确。
已经在 interfacebuilder 中设置如下:
[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
[btn setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
3个按钮相同属性,
但为什么只有第一个按钮的图像内容不正确,就像它出于某种原因的纵横比一样(我没有设置纵横比或其他任何设置)。
有关更多详细信息,请参见下面的这些图片:
在 interface-builder:
编译设备:
有人经历过吗?
ps: 对于 iOS >=8.4
您可能使用了 UIButton 的 image
属性 而不是 backgroundImage
,这与其他按钮不同。您可以通过这样的代码设置 backgroundImage
;
[button setBackgroundImage:anImage forState:UIControlStateNormal]
或者,您可以使用 UIButton 的文件检查器在故事板上设置它。
我认为 Stack View 在这种情况下会做得更好。
在界面构建器中:
在属性检查器中:
button1 的高度与其宽度成正比1:1 button2 和 button3 没有任何约束
希望对您有所帮助:)
我找到了解决方案:
这是因为我有自定义 class 属性 在界面构建器的运行时构建。
我忘记删除第一个按钮自定义 属性,这解释了为什么只有第一个按钮不正确。