废话不说~~这次直接上代码
//
// JSSignupSortButton.m
// JSmaster
//
// Created by jyd on 15/7/10.
// Copyright (c) 2015年 JYD. All rights reserved.
//
#import "JSSignupSortButton.h"
#define JSButtonImageW ScreenWidth/4+10
@implementation JSSignupSortButton
+(instancetype)buttonInstance
{
return [[self alloc]init];
}
-(instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//高亮的时候不要自动调整图标
self.adjustsImageWhenHighlighted = NO;
self.titleLabel.font = [UIFont boldSystemFontOfSize:18];
self.imageView.contentMode = UIViewContentModeLeft;
self.titleLabel.textAlignment = NSTextAlignmentRight;
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
}
return self;
}
-(void)setHighlighted:(BOOL)highlighted
{
}
/**
* 自定义按钮图片的frame
*
* @param contentRect
*
* @return
*/
-(CGRect)imageRectForContentRect:(CGRect)contentRect
{
CGFloat imageY = 0;
CGFloat imageW = JSButtonImageW;
CGFloat imageX = contentRect.size.width - JSButtonImageW;
CGFloat imageH = contentRect.size.height;
return CGRectMake(imageX, imageY, imageW, imageH);
}
/**
* 自定义按钮标题的frame
*
* @param contentRect
*
* @return
*/
-(CGRect)titleRectForContentRect:(CGRect)contentRect
{
CGFloat titleY = 0;
CGFloat titleW = contentRect.size.width - JSButtonImageW;
CGFloat titleX = 0;
CGFloat titleH = contentRect.size.height;
return CGRectMake(titleX, titleY, titleW, titleH);
}
/**
* 根据Title设定自己的宽度
*
* @param title
* @param state
*/
-(void)setTitle:(NSString *)title forState:(UIControlState)state
{
CGSize titleSize = [title sizeWithAttributes:@{NSFontAttributeName: self.titleLabel.font}];
CGFloat titleW = titleSize.width;
CGRect frame = self.frame;
frame.size.width = titleW + JSButtonImageW + 5;
self.frame = frame;
[super setTitle:title forState:state];
}
@end