更改按钮图像时,按钮大小也会更改。为什么?
When changing the button image, the button size is changed. Why?
在 IB 中,按钮的大小和位置已使用 autoLayout 设置得非常好。但是当我尝试使用以下
更改按钮图像时
if (need_Update) {
[_updateButton setImage:[UIImage imageNamed:@"ipad_012_01_update2.png"] forState:UIControlStateNormal];
}
else {
[_updateButton setImage:[UIImage imageNamed:@"ipad_012_01_update.png"] forState:UIControlStateNormal];
}
按钮大小已更改。我想知道为什么会这样?我该如何解决?
我的意思是,例如,原始按钮图像是 iPad_012_01_update.png
,它显示完美。当 need_Update
值为 YES
时,按钮图像更改为 ipad_012_01_update2.png
,但按钮大小也更改。
提前致谢!
总结
使用 Background Image
是防止不必要的大小更改的好方法!
此外,还有一个教训:如果您确实想使用 button image
而不是 button background image
,请确保两个按钮图像的分辨率相同!这将减少图像自行调整大小的可能性。
背景图像被缩放以填充 UIButton 的边界,并显示在标题后面。前景图像未缩放,并显示在按钮标题旁边。所以尝试设置一个按钮的backgroundImage。
UIButton image and background image, which one to use for custom image?
尝试关注
if (need_Update) {
[_updateButton setBackgroundImage:[UIImage imageNamed:@"ipad_012_01_update2.png"] forState:UIControlStateNormal];
}
else {
[_updateButton setBackgroundImage:[UIImage imageNamed:@"ipad_012_01_update.png"] forState:UIControlStateNormal];
}
希望对您有所帮助
从外观上看,您的图像似乎超出了按钮的范围,因此您认为按钮的大小正在发生变化。
要对此进行测试,请尝试将按钮的 clipsToBounds 设置为 YES。
它将剪掉任何超出按钮范围的内容。
因此您将能够以更好的方式对其进行分析,并相应地决定您希望如何前进。
在 IB 中,按钮的大小和位置已使用 autoLayout 设置得非常好。但是当我尝试使用以下
更改按钮图像时if (need_Update) {
[_updateButton setImage:[UIImage imageNamed:@"ipad_012_01_update2.png"] forState:UIControlStateNormal];
}
else {
[_updateButton setImage:[UIImage imageNamed:@"ipad_012_01_update.png"] forState:UIControlStateNormal];
}
按钮大小已更改。我想知道为什么会这样?我该如何解决?
我的意思是,例如,原始按钮图像是 iPad_012_01_update.png
,它显示完美。当 need_Update
值为 YES
时,按钮图像更改为 ipad_012_01_update2.png
,但按钮大小也更改。
提前致谢!
总结
使用 Background Image
是防止不必要的大小更改的好方法!
此外,还有一个教训:如果您确实想使用 button image
而不是 button background image
,请确保两个按钮图像的分辨率相同!这将减少图像自行调整大小的可能性。
背景图像被缩放以填充 UIButton 的边界,并显示在标题后面。前景图像未缩放,并显示在按钮标题旁边。所以尝试设置一个按钮的backgroundImage。
UIButton image and background image, which one to use for custom image?
尝试关注
if (need_Update) {
[_updateButton setBackgroundImage:[UIImage imageNamed:@"ipad_012_01_update2.png"] forState:UIControlStateNormal];
}
else {
[_updateButton setBackgroundImage:[UIImage imageNamed:@"ipad_012_01_update.png"] forState:UIControlStateNormal];
}
希望对您有所帮助
从外观上看,您的图像似乎超出了按钮的范围,因此您认为按钮的大小正在发生变化。
要对此进行测试,请尝试将按钮的 clipsToBounds 设置为 YES。
它将剪掉任何超出按钮范围的内容。
因此您将能够以更好的方式对其进行分析,并相应地决定您希望如何前进。