.h中定义方法
@interface UIButton (CustomButton)
/** 图片在左,标题在右 */
- (void)setIconInLeft;
/** 图片在右,标题在左 */
- (void)setIconInRight;
/** 图片在上,标题在下 */
- (void)setIconInTop;
/** 图片在下,标题在上 */
- (void)setIconInBottom;
//** 可以自定义图片和标题间的间隔 */
- (void)setIconInLeftWithSpacing:(CGFloat)Spacing;
- (void)setIconInRightWithSpacing:(CGFloat)Spacing;
- (void)setIconInTopWithSpacing:(CGFloat)Spacing;
- (void)setIconInBottomWithSpacing:(CGFloat)Spacing;
@end
.m中实现方法
#import "UIButton+CustomIcon.h"
@implementation UIButton (CustomButton)
- (void)setIconInLeftWithSpacing:(CGFloat)Spacing
{
self.titleEdgeInsets = (UIEdgeInsets){
.top = 0,
.left = 0,
.bottom = 0,
.right = 0,
};
self.imageEdgeInsets = (UIEdgeInsets){
.top = 0,
.left = 0,
.bottom = 0,
.right = 0,
};
}
- (void)setIconInRightWithSpacing:(CGFloat)Spacing
{
CGFloat img_W = self.imageView.frame.size.width;
CGFloat tit_W = self.titleLabel.frame.size.width;
self.titleEdgeInsets = (UIEdgeInsets){
.top = 0,
.left = - (img_W + Spacing / 2),
.bottom = 0,
.right = (img_W + Spacing / 2),
};
self.imageEdgeInsets = (UIEdgeInsets){
.top = 0,
.left = (tit_W + Spacing / 2),
.bottom = 0,
.right = - (tit_W + Spacing / 2),
};
}
- (void)setIconInTopWithSpacing:(CGFloat)Spacing
{
CGFloat img_W = self.imageView.frame.size.width;
CGFloat img_H = self.imageView.frame.size.height;
CGFloat tit_W = self.titleLabel.frame.size.width;
CGFloat tit_H = self.titleLabel.frame.size.height;
self.titleEdgeInsets = (UIEdgeInsets){
.top = (tit_H / 2 + Spacing / 2),
.left = - (img_W / 2),
.bottom = - (tit_H / 2 + Spacing / 2),
.right = (img_W / 2),
};
self.imageEdgeInsets = (UIEdgeInsets){
.top = - (img_H / 2 + Spacing / 2),
.left = (tit_W / 2),
.bottom = (img_H / 2 + Spacing / 2),
.right = - (tit_W / 2),
};
}
- (void)setIconInBottomWithSpacing:(CGFloat)Spacing
{
CGFloat img_W = self.imageView.frame.size.width;
CGFloat img_H = self.imageView.frame.size.height;
CGFloat tit_W = self.titleLabel.frame.size.width;
CGFloat tit_H = self.titleLabel.frame.size.height;
self.titleEdgeInsets = (UIEdgeInsets){
.top = - (tit_H / 2 + Spacing / 2),
.left = - (img_W / 2),
.bottom = (tit_H / 2 + Spacing / 2),
.right = (img_W / 2),
};
self.imageEdgeInsets = (UIEdgeInsets){
.top = (img_H / 2 + Spacing / 2),
.left = (tit_W / 2),
.bottom = - (img_H / 2 + Spacing / 2),
.right = - (tit_W / 2),
};
}
- (void)setIconInLeft
{
[self setIconInLeftWithSpacing:0];
}
- (void)setIconInRight
{
[self setIconInRightWithSpacing:0];
}
- (void)setIconInTop
{
[self setIconInTopWithSpacing:0];
}
- (void)setIconInBottom
{
[self setIconInBottomWithSpacing:0];
}
@end
网友评论