iOS自定义Button如何在按钮中把文字放左边,图片放右边

原创 2015年07月10日 13:00:27

废话不说~~这次直接上代码


//

//  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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片 在定义位置

UIEdgeInsets   [objc]  typedef struct UIEdgeInsets {       CGFloat top, left, bottom, ri...

IOS 初学 runtime 自定义Button实现按钮图片在上文字在下

创建一个UIButton的类目(category)需要我们重写父类中 - (void)layoutSubviews的方法利用runime机制为添加的属性生产set、get方法    ...

UIButton实现左文字右图片

[button setTitleEdgeInsets:UIEdgeInsetsMake(0, -image.size.width, 0, image.size.width)]; [button set...
  • args_
  • args_
  • 2016-08-14 18:29
  • 512

UIButton(左边图片右边文字)

normal highlighted UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.f...

uibutton实现左文字右图片

uibutton默认是左图片,右文字。并且在设置edge insets之前,位置已经有了设定。所以设置title的edge insets,真实的作用是在原来的边距值基础上增加或减少某个间距,负值便是减...

IOS自定义图片放右边的Button

自定义一个图片放在按钮右边位置的按钮 1。WQTitleButton.h #import @interface WQTitleButton : UIButton @end 1.W...

ios button 图标和文字位置设置

文字button.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;button. contentHorizonta...

猫猫学iOS(四十四)之网易彩票自定义图片在右边的Button_弹出view_ios6,7简单适配

猫猫分享,必须精品原创文章,欢迎转载。转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents效果:注意图里面了吗,其实那...

iOS小技巧 - 调换按钮中文字与图标的位置(自定义button,重写两个方法)

自定义控件必须实现initWithCoder、initWithFrame、setup这三个方法,规范! 新建继承于UIButton的类文件 LXFTitleButton LXFTitleButto...

弹窗的确定按钮是放左边还是右边

虽然是细节,然后放左放右仍然是经常遇到的问题,虽然最普通的处理方式是参考别的游戏或者统一放一边培养玩家习惯,但是不够深入,仍然想分析一下 1.弹窗主要分为两类     1.1普通的弹窗:     一般...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)