.h
import
- (void) setLeftAndRightTextWithImage:(UIImage *)image withTitle:(NSString *)title forState:(UIControlState)stateType withTextFont:(float)textFont;
/**
左边文字,右边图片
*
@param image Picture
@param title Title
@param stateType UIControlState
@param imageFontV ImageFont
@param titleFontV Title Font
*/- (void) setRightAndleftTextWithImage:(UIImage *)image withTitle:(NSString *)title forState:(UIControlState)stateType andImageFontValue:(float)imageFontV andTitleFontValue:(float)titleFontV;
@end
//.m中
import “UIButton+UIButtonImageWithLable.h”
@implementation UIButton (UIButtonImageWithLable)
/**
上面图片,底部文字 button
*
@param image Picture
@param title Title Text
@param stateType UIControlState
@param tintColor tintColor
*/
- (void) setTopAndBottomImage:(UIImage *)image withTitle:(NSString *)title forState:(UIControlState)stateType andTintColor:(UIColor *)tintColor {
//UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
int gapX = (self.frame.size.width- image.size.width)/2;
[self.imageViewsetContentMode:UIViewContentModeCenter];
[selfsetImageEdgeInsets:UIEdgeInsetsMake(0,
gapX,
25,
gapX)];
[selfsetImage:image forState:stateType];
//[self setImage:[image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:stateType];
[self.titleLabelsetContentMode:UIViewContentModeCenter];
[self.titleLabelsetBackgroundColor:[UIColorclearColor]];
[self.titleLabelsetFont:[UIFontsystemFontOfSize:12.0]];
[self.titleLabelsetTextColor:[UIColordarkGrayColor]];
[selfsetTintColor:tintColor];
[selfsetTitleEdgeInsets:UIEdgeInsetsMake(image.size.height,
-image.size.height,
0.0,
0.0)];
[selfsetTitleColor:tintColor forState:stateType];
[selfsetTitle:title forState:stateType];
}
pragma mark 备注:如果不需要上下显示,只需要横向排列的时候,就不需要设置左右偏移量了,代码如下
/**
左边图片右边文字
*
@param image 图片
@param title title
@param stateType UIControlState
@param textFont titleLabel Font Size
*/
- (void) setLeftAndRightTextWithImage:(UIImage *)image withTitle:(NSString *)title forState:(UIControlState)stateType withTextFont:(float)textFont {
//UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
[selfsetImageEdgeInsets:UIEdgeInsetsMake(0.0,
0.0,
0.0,
0.0)];
[selfsetImage:image forState:stateType];
self.contentHorizontalAlignment =UIControlContentHorizontalAlignmentLeft;
[self.titleLabelsetFont:[UIFontsystemFontOfSize:textFont]];
[self.titleLabelsetTextColor:[UIColordarkGrayColor]];
[selfsetTitleEdgeInsets:UIEdgeInsetsMake(0.0,
0.0,
0.0,
0.0)];
[selfsetTitle:title forState:stateType];
}
/**
左边文字,右边图片
*
@param image Picture
@param title Title
@param stateType UIControlState
@param imageFontV ImageFont
@param titleFontV Title Font
*/
- (void) setRightAndleftTextWithImage:(UIImage *)image withTitle:(NSString *)title forState:(UIControlState)stateType andImageFontValue:(float)imageFontV andTitleFontValue:(float)titleFontV {
//UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
[selfsetContentEdgeInsets:UIEdgeInsetsMake(0,0, 0,0)];
[self.imageViewsetContentMode:UIViewContentModeCenter];
[selfsetImageEdgeInsets:UIEdgeInsetsMake(0.0,
self.frame.size.width- image.size.width,
0.0,
0.0)];
[selfsetImage:image forState:stateType];
self.contentHorizontalAlignment =UIControlContentHorizontalAlignmentRight;//使得button中titleLabel居中左对齐,右对齐
self.titleLabel.textAlignment =NSTextAlignmentRight;
[self.titleLabelsetFont:[UIFontsystemFontOfSize:titleFontV]];
[self.titleLabelsetTextColor:[UIColordarkGrayColor]];
[selfsetTitleEdgeInsets:UIEdgeInsetsMake(0.0,
-image.size.width,
0.0,
image.size.width)];// 设置边距
[selfsetTitle:title forState:stateType];
}
@end
这里写代码片