说一下系统的button,image 和 title的位置关系

默认image 和 title的位置关系:

随便画了草图,有点丑,不过不妨碍理解:

第一种:在button上只设置文字,这个时候,button的文字默认是剧中的。

第二种:在button上只设置图片,也是默认剧中的。

第三种:主要说的是这种,当同时设置图片和文字时,默认图片是剧中的,文字就会被排挤到button的右侧。

这个时候,如果我们想要改变文字和button的位置,就要使用EdgeInsets

EdgeInsets

UIEdgeInsets UIEdgeInsetsMake (
CGFloat top,
CGFloat left,
CGFloat bottom,
CGFloat right
);
Description

Creat

先解释下:第一个参数 是离上边距的距离,同理,左,下,右。

一般设置的时候,只设置两种就可以了。

 UIButton *btn = [[UIButton alloc]init];
[btn setFrame:CGRectMake(_bt_startChooseTime.frame.origin.x, offset_y, self.frame.size.width-_bt_startChooseTime.frame.origin.x*, ZXL_STATIC_RATIO())];
[btn setImage:[UserDefault imageWithColor:[UIColor redColor] size:CGSizeMake(btn.frame.size.width, ZXL_STATIC_RATIO())] forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor yellowColor]];
[btn setTitle:@"设为默认" forState:UIControlStateNormal];

//距离:负数就是往该方向靠近,正数就是往该方向远离

        [btn setTitleEdgeInsets:UIEdgeInsetsMake(,-btn.imageView.bounds.size.width,-ZXL_STATIC_RATIO()-btn.titleLabel.bounds.size.height-, )];
[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];
[btn.titleLabel setFont:[UIFont systemFontOfSize:ZXL_FONT_SIZE - ]];

效果:

在没有设置setTitleEdgeInsets这个属性的时候,文字是在图片的右侧的。

[btn setTitleEdgeInsets:UIEdgeInsetsMake(0,-btn.imageView.bounds.size.width,-ZXL_STATIC_RATIO(40)-btn.titleLabel.bounds.size.height-10, 0)];

我title设置为 :距离左边距为 负的按钮宽度的时候,titlelabel就会xiang左移动按钮的宽度,这个时候,titlelabel就会移动到左边来.

        距离下边距为 图片的高度+titlelabel的高度+10.这样设置,文字就会往下边靠近 ( 图片的高度+titlelabel的高度+10)。

iOS UIButton EdgeInsets的更多相关文章

  1. IOS UIButton用法详解

    这段代码动态的创建了一个UIButton,并且把相关常用的属性都列举了.希望对大家有用.   //这里创建一个圆角矩形的按钮UIButton *button1 = [UIButton buttonWi ...

  2. iOS UIButton 图片文字上下垂直布局 解决方案

    实现如图所示效果: 这是一个UIButton,需要改变image和title相对位置. 解决如下: //设置文字偏移:向下偏移图片高度+向左偏移图片宽度 (偏移量是根据[图片]大小来的,这点是关键)b ...

  3. iOS UIButton文字和图片间距随意调整

    代码地址如下:http://www.demodashi.com/demo/11606.html 前记 在开发中,我们经常会遇到这么一种情况,就是一个按钮上面有图片也有文字,但是往往设计并不是我们想要的 ...

  4. iOS - UIButton

    前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIButton : UIControl <NSCoding> @available(iOS 2.0, ...

  5. iOS - UIButton设置文字标题下划线以及下划线颜色

    创建button设置可以折行显示 - (void)viewDidLoad { [super viewDidLoad]; UIButton * button = [[UIButton alloc] in ...

  6. iOS - UIButton折行文字显示设置

    首先在控制器中创建一个button - (void)viewDidLoad { [super viewDidLoad]; UIButton * button = [[UIButton alloc] i ...

  7. iOS·UIButton如何文字在下图片在上

    创建子类继承自UIButton,在layoutSubviews方法中改变文字和图片的位置就可以了,同理,稍作改变,可以写出文字在上图片在下.本文只给出文字在下图片在上的代码 -(void)layout ...

  8. iOS UIButton单双击处理响应不同的方法

    //显示目标 双击显示当前用户坐标位置 UIButton * btnShowDistination = [[UIButton alloc]initWithFrame:CGRectMake(, SCRE ...

  9. iOS UIButton setTitle与setAttributedTitle

    今天遇到一个问题,查了好久,终于解决. 我需要根据不同的条件给uibutton赋不同的值,由于字体要求有不同颜色变化,所以我选择了一个条件下用setTitle,另一个条件下用setAttributed ...

随机推荐

  1. android bin目录下的.ap_是神马文件?

    resources.ap_ resources翻译过来是资源的意思 应该就是一种中间文件,可以改成rar.zip等压缩文件的类型,里面包含res.AndroidMainfest.xml.resourc ...

  2. MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql

    目录(?)[-] 一MyBatis简介与配置MyBatisSpringMySql MyBatis简介 MyBatisSpringMySql简单配置 搭建Spring环境 建立MySql数据库 搭建My ...

  3. Win7远程登录Ubuntu14.04

    Quote: http://www.xp74.com/article/news/6083.htm Method: One:vnc连接,实现图形化登录 优点:图形化操作,较第二种方法快 缺点:效率不是最 ...

  4. Spring Framework 中启动 Redis 事务操作

    背景: 项目中遇到有一系列对Redis的操作,并需要保持事务处理. 环境: Spring version 4.1.8.RELEASE Redis Server 2.6.12 (64位) spring- ...

  5. Hbase笔记——RowKey设计

    一).什么情况下使用Hbase 1)传统数据库无法承载高速插入.大量读取. 2)Hbase适合海量,但同时也是简单的操作. 3)成熟的数据分析主题,查询模式确立不轻易改变. 二).现实场景 1.电商浏 ...

  6. Apache Maven 入门

    Apache Maven 入门篇 ( 上 ) Apache Maven 入门篇 ( 下 ) ~$mvn archetype:generate -DgroupId=com.mycompany.hello ...

  7. iOS开发中使用Bmob RESTful API

    简介 尽管Bmob已经提供了一套SDK供开发者使用,但有时候开发者可能希望能直接与Bmob后台进行直接交互,以达到某些特别的需求(直接操作_User表.同步网络请求等).而RESTful API可以使 ...

  8. 第二百五十七天 how can I 坚持

    下了个vmware12,不能用,不支持intel vx.电脑太老了,该换了,不过还很好用.该咋办.明年买个小米笔记本. 小米今天出了个小米自行车.不过不是小米生态链产品,好丑. 今天懒掌柜定做宣传服. ...

  9. Oracle 查看表空间大小及其扩展

    在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成.系统中默认创建的几个表空间:S ...

  10. [iOS微博项目 - 1.6] - 自定义TabBar

    A.自定义TabBar 1.需求 控制TabBar内的item的文本颜色(普通状态.被选中状态要和图标一致).背景(普通状态.被选中状态均为透明) 重新设置TabBar内的item位置,为下一步在Ta ...