如何根据需要调整背景图像的大小

Posted

技术标签:

【中文标题】如何根据需要调整背景图像的大小【英文标题】:How to resize background image as needed 【发布时间】:2015-02-15 18:03:50 【问题描述】:

我正在尝试创建一个带有图像和文本的 ui 按钮。

我需要的很简单:

第一行居中的图像和另一行居中的标签。

所以我在情节提要中创建了一个 uibutton,以这种方式设置文本和背景:

但结果对我不利。

这就是我所拥有的:

这就是我需要的:

有人可以帮我吗?

谢谢!

编辑

我以这种方式创建了一个自定义 UIButton:

.h

#import <UIKit/UIKit.h>

@interface MenuButton : UIButton
@property (weak, nonatomic) IBOutlet UIImageView *image;
@property (weak, nonatomic) IBOutlet UILabel *text;
@end

.m

#import "MenuButton.h"

@implementation MenuButton

@end

在界面生成器中,我创建了一个带有 MenuButton 类的视图,添加了一个图像和一个标签并连接到 .h。

现在我的问题是:

如何将图像和标签传递给该新按钮,以便在内部实例化多个具有不同值的“自定义按钮”?

谢谢!

【问题讨论】:

按钮是外面的矩形吗? 是的,整个按钮包含图片和文字 如果你想要这种行为,我建议继承 UIButton,并添加这种行为 好的,我知道我需要覆盖 uibutton 并使用图像和文本创建我的按钮.. 但是如何? :) 你有一些关于创建带有图像和文本的 uibutton 的指南吗?谢谢! 【参考方案1】:

您只需创建一个 UIButton 子类。

1)

如果您使用的是 IB:那么您可以在 .h 中创建 2 个属性

@property (weak, nonatomic) IBOutlet UIImageView *image;
@property (weak, nonatomic) IBOutlet UILabel *text

接下来您需要将所有属性连接到 IB 中的对象

如果您正在使用代码,请删除 IBOutlet 并将属性移动到 .m

2)

现在您需要做的就是管理属性的行为。

在 IB 中,只需将自动布局约束添加到子类并更改其常量属性值 - 检查此 tutorial

在代码中,您可以通过使用动画设置它们的框架来使它们变大/变小来做到这一点

编辑

好的,阅读您的更新后,您需要将子类从 UIButton 更改为 UIView

这样您可以在storyboard 中添加UIView 并添加UImageViewUILable。这样做之后,您可以将 UIView's 类更改为您的子类。

然后,单击UIView 并打开connections inspector。您将看到您在UIView 子类中声明的IBOutlets,您只需从connections inspector 拖动到UIImageViewUILabel 即可创建连接

【讨论】:

以上是关于如何根据需要调整背景图像的大小的主要内容,如果未能解决你的问题,请参考以下文章

响应式网页设计:“如何使用 CSS 根据浏览器窗口大小调整背景图像的大小”?

CSS背景图像,根据视口调整大小[重复]

根据分辨率自动调整背景图像大小

响应式设计:如何调整图像/背景图像的大小并垂直对齐 div?

Kineticjs如何在舞台上居中图像并根据浏览器调整大小

根据 UITableViewCell 标签高度和宽度调整背景图片大小