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 文字靠左

想要设置 uibutton 的文字的位置的时候,不能使用 btn.titleLabel.textAlignment = UITextAlignmentLeft  PS:这句代码是对 b...
  • u010850094
  • u010850094
  • 2016年08月11日 11:24
  • 2096

ios 设置button的title靠左显示

selectBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
  • yibuyibulai
  • yibuyibulai
  • 2015年03月21日 10:08
  • 2000

UIButton文字居左显示

题外话:时间依旧过的很快,不知不觉2015年就过去一半了。感觉自己好像没有大的改变,只能感叹时间飞逝,却不能有所收获。 我从来都不是一个安于现状的人,改变自己的想法从未停止过。我想大多数人都跟我有类...
  • agonie201218
  • agonie201218
  • 2016年05月09日 17:09
  • 4916

UIButton(左边图片右边文字)

normal highlighted UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.f...
  • hong1595
  • hong1595
  • 2016年06月16日 17:01
  • 3125

如何调整UIButton里面的文字位置以及按钮文字右对齐

例子如下:     [cpp] view plaincopy CGRect  btnRect = CGRectMake(              ...
  • hengshujiyi
  • hengshujiyi
  • 2013年06月29日 13:42
  • 23217

ios button 图标和文字位置设置

文字button.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;button. contentHorizonta...
  • wanglj7525
  • wanglj7525
  • 2015年02月02日 15:11
  • 7690

iOS_UIButton 实现button的内容左对齐以及图片和标题中间的间隔

要实现一个类似折叠效果的按钮  不多说 直接上代码和效果 - (void)createButton { UIButton *button = [[UIButton alloc]initWi...
  • GZgengzhen
  • GZgengzhen
  • 2017年07月27日 13:09
  • 1103

iOS上如何让按钮文本左对齐问题

// button.titleLabel.textAlignment = NSTextAlignmentLeft; 这句无效 button.contentHorizontalAlignme...
  • woaifen3344
  • woaifen3344
  • 2014年04月23日 09:43
  • 37118

ios中交换button的图片和文字的位置

UIButton 上默认是图片在左文字在右,而大多数情况这样默认的的显示形式都不能满足我们的需求,接下来我就这个问题分享一下我的心得。       默认情况下,不设置的效果,都是居中实现     ...
  • qqqqzxg
  • qqqqzxg
  • 2016年09月01日 16:48
  • 8922

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

UIEdgeInsets   [objc]  typedef struct UIEdgeInsets {       CGFloat top, left, bottom, ri...
  • wsk_123_123
  • wsk_123_123
  • 2014年01月26日 16:09
  • 102748
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS自定义Button如何在按钮中把文字放左边,图片放右边
举报原因:
原因补充:

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