项目中经常遇到按钮改变文字和图片位置的情况,所以尝试写一个 button 的分类:

参照连接 http://blog.csdn.net/dfqin/article/details/37813591

import Foundation
import UIKit
/*枚举 设置 图片的位置*/
enum ButtonImagePosition : Int{case PositionTop = 0case Positionleftcase PositionBottomcase PositionRight
}extension UIButton {/**imageName:图片的名字title:button 的名字type :image 的位置 Space :图片文字之间的间距    */func setImageAndTitle(imageName:String,title:String,type:ButtonImagePosition,Space space:CGFloat)  {self.setTitle(title, for: .normal)self.setImage(UIImage(named:imageName), for: .normal)let imageWith :CGFloat = (self.imageView?.frame.size.width)!;let imageHeight :CGFloat = (self.imageView?.frame.size.height)!;var labelWidth :CGFloat = 0.0;var labelHeight :CGFloat = 0.0;labelWidth = CGFloat(self.titleLabel!.intrinsicContentSize.width);labelHeight = CGFloat(self.titleLabel!.intrinsicContentSize.height);var  imageEdgeInsets :UIEdgeInsets = UIEdgeInsets();var  labelEdgeInsets :UIEdgeInsets = UIEdgeInsets();switch type {case .PositionTop:imageEdgeInsets = UIEdgeInsetsMake(-labelHeight - space/2.0, 0, 0, -labelWidth);labelEdgeInsets = UIEdgeInsetsMake(0, -imageWith, -imageHeight-space/2.0, 0);break;case .Positionleft:imageEdgeInsets = UIEdgeInsetsMake(0, -space/2.0, 0, space/2.0);labelEdgeInsets = UIEdgeInsetsMake(0, space/2.0, 0, -space/2.0);break;case .PositionBottom:imageEdgeInsets = UIEdgeInsetsMake(0, 0, -labelHeight-space/2.0, -labelWidth);labelEdgeInsets = UIEdgeInsetsMake(-imageHeight-space/2.0, -imageWith, 0, 0);break;case .PositionRight:imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth+space/2.0, 0, -labelWidth-space/2.0);labelEdgeInsets = UIEdgeInsetsMake(0, -imageWith-space/2.0, 0, imageWith+space/2.0);break;}// 4. 赋值self.titleEdgeInsets = labelEdgeInsets;self.imageEdgeInsets = imageEdgeInsets;}
}

调用方法:

/*使用方便 用xib 中建立的 leftBtn*/

leftBtn.setImageAndTitle(imageName: "hezuojigou", title: "合作机构", type: .PositionTop, Space: 0.0)

转载于:https://www.cnblogs.com/Bob-blogs/p/6564971.html

swift 第四课 随意 设置button 图片和文字 位置相关推荐

  1. python中mainloop添加背景_Python实例讲解 - tkinter canvas (设置背景图片及文字)

    Python实例讲解 -- tkinter canvas (设置背景图片及文字) 先来一个绘图: from Tkinter import * master = Tk() w = Canvas(mast ...

  2. python设置背景图片大全_Python实例讲解 - tkinter canvas (设置背景图片及文字)

    Python实例讲解 -- tkinter canvas (设置背景图片及文字) 先来一个绘图: from Tkinter import * master = Tk() w = Canvas(mast ...

  3. python中mainloop添加背景_Python实例讲解 tkinter canvas (设置背景图片及文字)

    Python实例讲解 tkinter canvas (设置背景图片及文字) 2018-09-14 Python实例讲解 -- tkinter canvas (设置背景图片及文字) 博客分类:Pytho ...

  4. swift新手进阶30天一 自定义上图片下文字的UIButton的几种方式

    目前很多app首页功能区都类似工具栏上图标加下文字的方式来自定义按钮.当然,我们也可以用两个控件实现,但是,提升不了我们的逼格.接下来就介绍几种自定义这种上图标下文字的按钮的几种方式.先上图. ![首 ...

  5. html图片环绕怎么设置,word中如何设置让图片环绕文字的效果

    word2007中怎么编辑图片?大家在使用word2007插入图片的时候有没有发现可以对图片进行很多种的修改,比如说将图片设置成围绕文字的效果,但是很多初学者相信应该还不知道怎么进行设置,下面小编就详 ...

  6. 设置div 四个角设置背景图片

    1. 效果图如下 2. 准备四张png背景图片 3. 页面结构和css <!-- 常住人口统计 --> <template><div class="conten ...

  7. iOS 按钮图片和文字位置的各种设置(Swift代码)

    效果如下图: 1.在UIButton的扩展中添加方法 /* 枚举 设置 图片的位置 */ enum ButtonImagePosition : Int {case imageTop = 0case i ...

  8. 自定义button-iOS设置button图片文字上下居中垂直对齐

    第一种: @interface  BaseButton :  UIButton -( UIButton *)initWithFrame:( CGRect )frame Title:( NSString ...

  9. UITextField设置左侧图片、文字居中(占位符的位置)

    一.我们通常在设计登录界面时会用到UITextField,如下图所示: 通常想实现下面几点: 1.左边显示图片 2.textField中添加默认的占位符(提示文字),并且希望占位符和左边图片有一点的距 ...

最新文章

  1. CRM 客户端程序开发:获取表单界面上各种字段的值及其他属性
  2. android 8.0 Account行为变更 账号系统
  3. request for KPI tile number display could not be executed for the second time
  4. LeetCode 1221. 分割平衡字符串
  5. 22 SD配置-主数据-定义付款条款
  6. Python学习笔记:文件读/写方法汇总
  7. Hbase问题汇总与解答
  8. 华为云Volcano:让企业AI算力像火山一样爆发
  9. mysql workbench 1064_mysql - MySQL Workbench中的正向工程输出错误1064 - 堆栈内存溢出
  10. 运动目标跟踪(九)--Struck跟踪原理
  11. 多个注解可以合并成一个,包括自定义注解
  12. php 转换中文乱码,解决php中文乱码转换问题
  13. Cat8八类网线是什么?与Cat5、Cat6、Cat7网线的区别?
  14. C++ 修改图片格式(后缀)
  15. 2019 Python接口自动化测试框架实战开发(一)
  16. 微信公众号还适合投资和创业吗?
  17. 创业者回忆和乔布斯谈判:说错一个字就被臭骂拉黑
  18. 2021年焊工(初级)考试及焊工(初级)免费试题
  19. java教程 电子工业出版社_Java程序设计实用教程
  20. c语言怎样将程序转化为软件,怎么才能将C程序转化为arduino程序

热门文章

  1. c语言转换为python语言_python和c语言
  2. python网格划分_在python中创建一个2d网格
  3. vc6开发一个抓包软件_惊奇软件[21]:这是一个程序员开发的背单词网站,可好用了!...
  4. 手写springmvc
  5. Jmeter之逻辑控制器(Logic Controller)
  6. 高效update方案
  7. CWnd与HWND的区别与转换
  8. 字符串转16进制字节数组,字节数组转16进制字符串
  9. SqlServer2008 安装经验日志总结
  10. java请求注释_求达人给java代码【注释】!!请求尽量详细,万分感谢!!