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

How to resize background image as needed

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

我需要的很简单:

图像在第一行居中,另一行标签居中。

所以我在故事板中创建了一个 ui 按钮,以这种方式设置文本和背景:

但结果对我来说并不好。

这是我的:

这就是我需要的:

有人可以帮助我吗?

谢谢!

编辑

我用这种方式创建了一个自定义 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

在界面 builder 中,我创建了一个视图 class MenuButton 添加了图像和标签并连接到 .h.

现在我的问题是:

我如何将图像和标签传递给那个新按钮,以便实例化多个 "custom button" 内部具有不同的值?

谢谢!

您只需创建一个 UIButton 子class。

1)

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

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

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

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

2)

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

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

在代码中,您可以通过为它们设置动画框架来实现 larger/smaller

编辑

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

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

然后,点击 UIView 并打开 connections inspector。您将看到您在 UIView 子 class 中声明的 IBOutlets,您可以从 connections inspector 拖到 UIImageView & UILabel建立联系