swift 第四课 随意 设置button 图片和文字 位置
项目中经常遇到按钮改变文字和图片位置的情况,所以尝试写一个 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 图片和文字 位置相关推荐
- python中mainloop添加背景_Python实例讲解 - tkinter canvas (设置背景图片及文字)
Python实例讲解 -- tkinter canvas (设置背景图片及文字) 先来一个绘图: from Tkinter import * master = Tk() w = Canvas(mast ...
- python设置背景图片大全_Python实例讲解 - tkinter canvas (设置背景图片及文字)
Python实例讲解 -- tkinter canvas (设置背景图片及文字) 先来一个绘图: from Tkinter import * master = Tk() w = Canvas(mast ...
- python中mainloop添加背景_Python实例讲解 tkinter canvas (设置背景图片及文字)
Python实例讲解 tkinter canvas (设置背景图片及文字) 2018-09-14 Python实例讲解 -- tkinter canvas (设置背景图片及文字) 博客分类:Pytho ...
- swift新手进阶30天一 自定义上图片下文字的UIButton的几种方式
目前很多app首页功能区都类似工具栏上图标加下文字的方式来自定义按钮.当然,我们也可以用两个控件实现,但是,提升不了我们的逼格.接下来就介绍几种自定义这种上图标下文字的按钮的几种方式.先上图. ![首 ...
- html图片环绕怎么设置,word中如何设置让图片环绕文字的效果
word2007中怎么编辑图片?大家在使用word2007插入图片的时候有没有发现可以对图片进行很多种的修改,比如说将图片设置成围绕文字的效果,但是很多初学者相信应该还不知道怎么进行设置,下面小编就详 ...
- 设置div 四个角设置背景图片
1. 效果图如下 2. 准备四张png背景图片 3. 页面结构和css <!-- 常住人口统计 --> <template><div class="conten ...
- iOS 按钮图片和文字位置的各种设置(Swift代码)
效果如下图: 1.在UIButton的扩展中添加方法 /* 枚举 设置 图片的位置 */ enum ButtonImagePosition : Int {case imageTop = 0case i ...
- 自定义button-iOS设置button图片文字上下居中垂直对齐
第一种: @interface BaseButton : UIButton -( UIButton *)initWithFrame:( CGRect )frame Title:( NSString ...
- UITextField设置左侧图片、文字居中(占位符的位置)
一.我们通常在设计登录界面时会用到UITextField,如下图所示: 通常想实现下面几点: 1.左边显示图片 2.textField中添加默认的占位符(提示文字),并且希望占位符和左边图片有一点的距 ...
最新文章
- CRM 客户端程序开发:获取表单界面上各种字段的值及其他属性
- android 8.0 Account行为变更 账号系统
- request for KPI tile number display could not be executed for the second time
- LeetCode 1221. 分割平衡字符串
- 22 SD配置-主数据-定义付款条款
- Python学习笔记:文件读/写方法汇总
- Hbase问题汇总与解答
- 华为云Volcano:让企业AI算力像火山一样爆发
- mysql workbench 1064_mysql - MySQL Workbench中的正向工程输出错误1064 - 堆栈内存溢出
- 运动目标跟踪(九)--Struck跟踪原理
- 多个注解可以合并成一个,包括自定义注解
- php 转换中文乱码,解决php中文乱码转换问题
- Cat8八类网线是什么?与Cat5、Cat6、Cat7网线的区别?
- C++ 修改图片格式(后缀)
- 2019 Python接口自动化测试框架实战开发(一)
- 微信公众号还适合投资和创业吗?
- 创业者回忆和乔布斯谈判:说错一个字就被臭骂拉黑
- 2021年焊工(初级)考试及焊工(初级)免费试题
- java教程 电子工业出版社_Java程序设计实用教程
- c语言怎样将程序转化为软件,怎么才能将C程序转化为arduino程序
热门文章
- c语言转换为python语言_python和c语言
- python网格划分_在python中创建一个2d网格
- vc6开发一个抓包软件_惊奇软件[21]:这是一个程序员开发的背单词网站,可好用了!...
- 手写springmvc
- Jmeter之逻辑控制器(Logic Controller)
- 高效update方案
- CWnd与HWND的区别与转换
- 字符串转16进制字节数组,字节数组转16进制字符串
- SqlServer2008 安装经验日志总结
- java请求注释_求达人给java代码【注释】!!请求尽量详细,万分感谢!!