文章标题
2016-12-13 09:40
204 查看
.h
/**
左边文字,右边图片
*
@param image Picture
@param title Title
@param stateType UIControlState
@param imageFontV ImageFont
@param titleFontV Title Font
@end
//.m中
/**
上面图片,底部文字 button
*
@param image Picture
@param title Title Text
@param stateType UIControlState
@param tintColor tintColor
*/
左边图片右边文字
*
@param image 图片
@param title title
@param stateType UIControlState
@param textFont titleLabel Font Size
*/
/**
左边文字,右边图片
*
@param image Picture
@param title Title
@param stateType UIControlState
@param imageFontV ImageFont
@param titleFontV Title Font
*/
@end
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
这里写代码片