Swift开发中如何让图片填充满按钮的全部尺寸
按钮背景图铺满显示设置方案

一、StoryBoard可视化操作步骤
- 选中需要配置的目标按钮,打开右侧属性检查器(Attributes Inspector)面板
- 在
Button分组下找到Background配置项,选择要使用的背景图片,注意不要配置到Image项,该项对应的是按钮前景图标,不会铺满整个按钮区域 - 下拉找到
View分组,将Content Mode选项调整为对应模式:- 选择
Scale To Fill:直接拉伸图片完全铺满按钮,不保留原图宽高比,可能出现图像变形 - 选择
Aspect Fill:保留原图宽高比缩放至占满按钮区域,超出按钮边界的部分会自动裁剪,不会出现变形
- 选择
- 若设置后仍存在留白,找到
Edge下拉选项,选中Content,将上下左右四个方向的内边距全部调整为0即可
二、代码动态配置方案
如果需要运行时动态设置,可参考如下代码:
Swift 示例
let customBtn = UIButton(type: .custom) // 设置背景图片 customBtn.setBackgroundImage(UIImage(named: "target_image"), for: .normal) // 配置内容铺满模式 customBtn.contentMode = .scaleAspectFill // 移除按钮默认内边距 customBtn.contentEdgeInsets = .zero // 裁剪超出按钮边界的内容(使用Aspect Fill时建议开启) customBtn.clipsToBounds = true
Objective-C 示例
UIButton *customBtn = [UIButton buttonWithType:UIButtonTypeCustom]; // 设置背景图片 [customBtn setBackgroundImage:[UIImage imageNamed:@"target_image"] forState:UIControlStateNormal]; // 配置内容铺满模式 customBtn.contentMode = UIViewContentModeScaleAspectFill; // 移除按钮默认内边距 customBtn.contentEdgeInsets = UIEdgeInsetsZero; // 裁剪超出按钮边界的内容 customBtn.clipsToBounds = YES;
内容的提问来源于stack exchange,提问作者Neeryo7
相关产品推荐
相关产品推荐

