iPhone - 内部带有未调整大小图像的 UIButton

Posted

技术标签:

【中文标题】iPhone - 内部带有未调整大小图像的 UIButton【英文标题】:iPhone - UIButton with non resized image inside 【发布时间】:2011-04-11 18:46:35 【问题描述】:

我有一个“自定义”类型的 UIButton,具有从资源中获取其图像的“图像”属性。图像比按钮小。我无法在 Interface Builder 中实现保持图像的原始大小,同时根据需要缩放按钮的尺寸。

如何在 IB 中添加任意大小的按钮,保持原始图像大小,将其对齐在中心、左右、底部,而不是按钮...?不放 UIImageView 不就可以了吗?

【问题讨论】:

发布一些代码。您是在谈论按钮背景图像还是按钮图像?不确定您要实现的具体行为。 @XJones :没有代码,我说的是 Interface Builder 中的“图像”属性。 UIImageView 的动画功能只比 UIImage 多。我认为对您的情况没有任何帮助 不清楚您要做什么以及什么不起作用。按钮图像不会随着按钮大小的变化而缩放。按钮背景图片可以缩放。 @XJones :这很简单。我在 Interface Builder 中有一个 UIButton,我已经使用资源图像(进入下拉列表)设置了“图像”属性(不是背景属性),并且该图像缩放到按钮比例。 【参考方案1】:

确保您的按钮的contentHorizontalAlignmentcontentVerticalAlignment 属性未分别设置为UIControlHorizontalAlignmentFillUIControlVerticalAlignmentFill。这些值将缩放按钮图像以填充按钮框架。任何其他值都会适当地对齐图像。

【讨论】:

@Oliver,我必须相信你。我知道没有其他属性会导致 UIButton 的 image 属性根据按钮的大小进行缩放。我可以重现您的问题的唯一方法是将控件对齐选项设置为填充。我在 IB 做这一切,我假设你也是基于你的 cmets。 愚蠢的问题。事实上,我的图像分辨率太大,当将视图模式设置为适合/填充以外的任何其他内容时,图像并没有被截断,而是填充了按钮。我以为我的形象太小了,这种行为让我误入歧途。所以缩小图片大小后,就没有问题了,你的回答是对的。 很高兴你知道了。我们都会犯这样的错误。【参考方案2】:

使用图像前景放置不可调整大小的图像元素,在 *** 上的帖子中找到但忘记了它在哪里。

button.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
button.imageEdgeInsets = UIEdgeInsetsMake(0,-10,0,0);

[button setImage:[UIImage imageNamed:@"back-button"] forState:UIControlStateNormal];

【讨论】:

这很好,但您也可以在 Interface Builder 中设置按钮的图像插入 ;-) 不,这太容易了

以上是关于iPhone - 内部带有未调整大小图像的 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

将带有图像背景的 UI Button 缩放为 iphone 大小

iPhone 6+ 的约束打破了动态调整单元格的大小

旋转和调整图像大小 + iPhone

带有空名称/标签的 Uib 下拉菜单未打开

用户在 iPhone 应用程序中调整图像大小

如何在 iPhone 中以高质量调整图像大小