实用知识:UIButton 图片在上文字在下

转载 2016年05月31日 13:18:24

http://blog.csdn.net/dolacmeng/article/details/48373769

iOS默认的UIButton是图片在左文字在右,但是很多时候需求是图片在上文字在下(如效果图1、效果图2),因此想到,通过写一个JXButton继承自UIButton,并重写相关方法即可,以后项目中需要用的话就直接使用JXButton就行了。
(*以前用的另外一种方法,每次都需要写代码,使用不方便:http://blog.csdn.net/dolacmeng/article/details/45537525

新建一个类JXButton,继承于UIButton,以下是JXButtom.h的代码:

[objc] view plain copy
#import <UIKit/UIKit.h>  

@interface JXButton : UIButton  

@end  

JXButtom.m的代码:

[objc] view plain copy
//  
//  JXButton.m  
//  HXSD  
//  
//  Created by JackXu on 15/8/17.  
//  Copyright (c) 2015年 BFMobile. All rights reserved.  
//  

#import "JXButton.h"  
#import "NSString+Extension.h"  

@implementation JXButton  

-(id)initWithCoder:(NSCoder *)aDecoder{  
    if (self=[super initWithCoder:aDecoder]) {  
        self.titleLabel.textAlignment = NSTextAlignmentCenter;  
    }  
    return self;  
}  

-(id)initWithFrame:(CGRect)frame{  
    if (self=[super initWithFrame:frame]) {  
        self.titleLabel.textAlignment = NSTextAlignmentCenter;  
    }  
    return self;  
}  

-(CGRect)titleRectForContentRect:(CGRect)contentRect{  
    CGFloat titleX = 0;  
    CGFloat titleY = contentRect.size.height *0.7;  
    CGFloat titleW = contentRect.size.width;  
    CGFloat titleH = contentRect.size.height - titleY;  
    return CGRectMake(titleX, titleY, titleW, titleH);  
}  

-(CGRect)imageRectForContentRect:(CGRect)contentRect{  
    CGFloat imageW = CGRectGetWidth(contentRect);  
    CGFloat imageH = contentRect.size.height * 0.7;  
    return CGRectMake(0, 0, imageW, imageH);  
}  

@end  

使用:
(1)storyboard中:选中button,将Class设置为JXButton:

(2)如果是代码创建Button,将原来的UIButton改为JXButton即可

iOS按钮设置图片在上文字在下

UIButton同时设置Title和Image后,默认是图片在左文字在右,如下图1,很多情况下我们希望图片在上图片在下,如下图2,只需要简单的几行代码,即可实现。 图1 (1)因为...
  • dolacmeng
  • dolacmeng
  • 2015年05月06日 16:32
  • 27776

设置UIButton的文字显示位置、字体的大小、字体的颜色

btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlStateNor...
  • chengyingzhilian
  • chengyingzhilian
  • 2012年12月21日 14:32
  • 188878

iOS之UIButton无法显示文字

UIButton的titleLabel 设置text属性不能显示,错误代码: UIButton *btnClear = [UIButton buttonWithType:UIButtonTy...
  • LVXIANGAN
  • LVXIANGAN
  • 2015年11月25日 22:52
  • 4321

UIButton获取标题文字

问题 一个button,点击事件实现在一个搜索图标和“取消”之间的转换,那需要在响应事件中判断标题文字,所以我想获取button的标题 代码如下: if ([button.titleLa...
  • ws1352864983
  • ws1352864983
  • 2016年09月14日 15:56
  • 2971

设置文字并调整UIButton里面的文字位置

不使用alloc初始化: _battleBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 设置文字: [_battleB...
  • trandy
  • trandy
  • 2012年11月20日 15:48
  • 4751

UIButton上同时显示图片和文字的方法

项目中经常会遇到Button上同时显示图片和文字,且图片和文字上下排列,同事用到的方法是在UIButton上添加一个UIImageView和UILable控件,这样做代码比较繁琐,然后我就试着扩展了U...
  • qijianli
  • qijianli
  • 2012年11月06日 14:09
  • 38856

IOS 控件 - UIButton 文字靠左

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

UIbutton设置文字

很久没写ios程序了,刚设置UIbutton的text属性,发觉
  • youchengyuanzhi
  • youchengyuanzhi
  • 2014年05月13日 00:06
  • 260

设置UIButton的文字显示位置、字体的大小、字体的颜色

btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlStateNor...
  • zhangkongzhongyun
  • zhangkongzhongyun
  • 2012年10月07日 19:35
  • 58193

iOS按钮设置图片在上文字在下

UIButton同时设置Title和Image后,默认是图片在左文字在右,如下图1,很多情况下我们希望图片在上图片在下,如下图2,只需要简单的几行代码,即可实现。 图1 (1)因为...
  • dolacmeng
  • dolacmeng
  • 2015年05月06日 16:32
  • 27776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实用知识:UIButton 图片在上文字在下
举报原因:
原因补充:

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