## 介绍 在 LXLayout 基础上再增加 lx_imageViewSize 设置图片显示的固定大小 使用 Category,对 UIButton 进行扩展。不需要继承,放入即可使用。你可以使用 UIButton 的原生方法设置各个状态下的 UI 属性,而这个 Category 则为您提供布局的方法。 ### 图示
### 提供方法 Cocoapods 使用:pod 'UIButton-LXLayout', '~> 0.2'
- 提供定制 UIButton 内部的 imageView 和 titleLabel 的位置的方法:
/**
* 文本和图片间的间距
*/
@property (assign, nonatomic) CGFloat lx_subMargin;
/**
* 布局的类型
*/
@property (assign, nonatomic) LXButtonLayoutType lx_layoutType;
/**
* 对按钮内部的图片和文本重新进行布局
*
* @param layoutType 重新布局的类型
* @param subMargin 内部图片和文本之间的间距
*/
- (void) lx_layoutWithType:(LXButtonLayoutType)layoutType subMargin:(CGFloat)subMargin;
/**
* 图片尺寸
*/
@property (assign, nonatomic) CGSize lx_imageViewSize;
/**
* 只有LXButtonLayoutType = LXButtonLayoutTypeImageRightDown 时有效,
* 图片Y轴偏移量 lx_imageYMargin>0 往下偏移 lx_imageYMargin<0 往上偏移
*/
@property (assign, nonatomic) CGFloat lx_imageYMargin;
- 布局的类型有:
//UIButton重新布局的类型
typedef NS_ENUM(NSInteger, LXButtonLayoutType)
{
LXButtonLayoutTypeNone = 0, //默认
LXButtonLayoutTypeImageLeft = 1, //图片在左边
LXButtonLayoutTypeImageRight = 2, //图片在右边
LXButtonLayoutTypeImageTop = 3, //图片在上边
LXButtonLayoutTypeImageBottom = 4 //图片在下边
};
### 实际使用
_button.lx_subMargin = 5;
_button.lx_layoutType = LXButtonLayoutTypeImageTop;
[_button setImage:[UIImage imageNamed:@"test_nor"] forState:UIControlStateNormal];
[_button setImage:[UIImage imageNamed:@"test_hl"] forState:UIControlStateHighlighted];
[_button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];