Ios 内容图像不正确,autolayout UI3按钮的宽度与屏幕宽度成比例

Ios 内容图像不正确,autolayout UI3按钮的宽度与屏幕宽度成比例,ios,uibutton,interface-builder,aspect-ratio,ios-autolayout,Ios,Uibutton,Interface Builder,Aspect Ratio,Ios Autolayout,我有3个按钮,它们的宽度与屏幕的宽度成比例, 没有约束误差 (=导线监控)按钮1(=HSpace)按钮2(=HSpace)按钮3(=牵引监控) 按钮2与按钮1的宽度相同 按钮3与按钮1的宽度相同 按钮1中心垂直于superview 按钮2和3中心垂直于按钮1 按钮1的高度与其宽度1:1的比例成正比 按钮2和3等于高度按钮1 结果: 3个按钮的边框正确(我知道为什么它正确,因为我将背景色设置为黄色,并且它的真实宽度相同) 但不正确的部分是,为什么只有第一个按钮的图像较小,其他按钮的图像大小正确 已

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

(=导线监控)按钮1(=HSpace)按钮2(=HSpace)按钮3(=牵引监控)

按钮2与按钮1的宽度相同

按钮3与按钮1的宽度相同

按钮1中心垂直于superview

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

按钮1的高度与其宽度1:1的比例成正比

按钮2和3等于高度按钮1

结果:

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

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

已在interfacebuilder上设置,如下所示:

[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
[btn setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
3个按钮具有相同的属性

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

有关更多详细信息,请参见以下图片:

在界面生成器上:

在编译设备上:

有人经历过吗


ps:对于iOS>=8.4

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

[按钮设置背景图像:状态动画:UIControlStateNormal]


或者,您可以使用UIButton的文件检查器在故事板上设置它。

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

[按钮设置背景图像:状态动画:UIControlStateNormal]


或者,您可以使用UIButton的文件检查器在故事板上设置它。

我认为堆栈视图在这种情况下会做得更好

在界面生成器:

在属性检查器:

按钮1的高度与其宽度1:1的比例成正比 按钮2和按钮3没有任何约束


希望这能帮助您:)

我认为堆栈视图在这种情况下会做得更好

在界面生成器:

在属性检查器:

按钮1的高度与其宽度1:1的比例成正比 按钮2和按钮3没有任何约束


希望这能帮助您:)

我找到了解决方案:

这是因为我有在interface builder运行时生成的自定义类属性


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

我找到了解决方案:

这是因为我有在interface builder运行时生成的自定义类属性


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

all使用UIButton的
image
属性而不是
backgroundImage
,但出于某种原因,我想使用image的属性而不是backgroundImage属性。或者我应该使用
backgroundImage
来处理这种情况吗?我使用
backgroundImages
属性尝试了您的解决方案,它显示了正确的内容图像。真棒*thumbsupall正在使用UIButton的
image
属性not
backgroundImage
,但出于某种原因,我想使用image的属性not background image属性。或者我应该在这种情况下使用
backgroundImage
?我使用
backgroundImages
属性尝试了您的解决方案,它显示了正确的内容图像。真棒*拇指sup对不起,我忘了提到这是针对iOS>=8.4的,
UIStackView
是针对iOS>=9.0的,将编辑描述。@YosephWijaya您有gmail吗?我根据你的描述写了一个演示,但是按钮显示正确。嗯,真的吗?是的,当然,发邮件给我info@yoseph.wsI已将其发送给您。很抱歉,我忘了提及这是针对iOS>=8.4的,
UIStackView
是针对iOS>=9.0的,将编辑说明。@YosephWijaya您有gmail吗?我根据你的描述写了一个演示,但是按钮显示正确。嗯,真的吗?是的,当然,发邮件给我info@yoseph.wsI我已经寄给你了。