创建一个类继承UIButton,重写 - (void)layoutSubviews;或系统提供几个方法可重写UIButton内的控件布局,让button的title和image变换位置和改变大小。

- (CGRect)backgroundRectForBounds:(CGRect)bounds;

- (CGRect)contentRectForBounds:(CGRect)bounds;

- (CGRect)titleRectForContentRect:(CGRect)contentRect;

- (CGRect)imageRectForContentRect:(CGRect)contentRect;

安装

使用 CocoaPods 安装:

pod 'GWLCustomButton'

具体代码可参考 GWLCustomButton,简单的分为五种类型的按钮样式

图片文字水平显示

typedef NS_ENUM(NSInteger, HorizontalButtonType) {

HorizontalButtonTypeLeftImageRightTitle = 1 << 2,//左图右文字

HorizontalButtonTypeRightImageLeftTitle = 1 << 3,//右图左文字

};

创建方法

+ (instancetype)gwl_horizontalButton:(HorizontalButtonType)type isAutomaticWidth:(BOOL)isAutomaticWidth;

图片文字垂直显示

typedef NS_ENUM(NSInteger, VerticalButtonType) {

VerticalButtonTypeTopImageBottomTitle = 1 << 5,//上图下文字

VerticalButtonTypeBottomImageTopTitle = 1 << 6,//下图上文字

};

创建方法

+ (instancetype)gwl_verticalButton:(VerticalButtonType)type isAutomaticHeight:(BOOL)isAutomaticHeight;

图片文字居中显示

创建方法

+ (instancetype)gwl_centerButton;

属性

提供控件对应属性可自定义图片的宽imageWidth高imageHeight和文字的宽titleWidth高titleHeight,图片或文字的开始位置initialPositionSpacing、结束位置endPositionSpacing、中间间距imageTitleSpacing

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐