说一下系统的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)。

最新文章

  1. Spring入门_01
  2. 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法
  3. c++回调实现
  4. ngui点击与场景点击判断
  5. Horner规则
  6. 安装MYSql Windows7下MySQL5.5.20免安装版的配置
  7. 【数据库】Mean web开发 04-MongoDB在Linux上的安装及遇到的问题
  8. 【JVM】tomcat参数调整
  9. Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) B. Divisiblity of Differences
  10. 深入理解Java设计模式之观察者模式
  11. C++系列总结——mutable关键字
  12. java.lang.NoClassDefFoundError: javax/annotation/Priority
  13. 当visual studio的数据库项目遇到SQL71501
  14. 函数使用十一:FTP
  15. linux 服务器之间配置免密登录
  16. Python并发编程(守护进程,进程锁,进程队列)
  17. 使用migration创建表时,出错的解决方法
  18. ASP.NET 性能监控和优化入门
  19. SSH2框架实现注冊发短信验证码实例
  20. SpringMVC 过滤器

热门文章

  1. Java [Leetcode 303]Range Sum Query - Immutable
  2. 【C#学习笔记】播放wav文件
  3. Oracle 手工清除回滚段的几种方法
  4. hdu 5407 CRB and Candies(组合数+最小公倍数+素数表+逆元)2015 Multi-University Training Contest 10
  5. [转] C#中发送消息给指定的窗口,以及接收消息
  6. Nginx下防御HTTP GET FLOOD(CC)攻击
  7. (原创)LAMP教程5-配置VirtualBox虚拟机中centos6.4的网卡
  8. Shell获取Aix/linux/unix机器上db2和os的信息并上传到指定服务器
  9. web自动化框架之三获取数据库值与界面值比较~~
  10. 在Lua里写unity游戏笔记