项目中的需求是前面图片,在图片最后面始终有按钮如图

图片

let space:CGFloat = 10

for i in 0..model.count{

let itemWidth:CGFloat = 300

let itemHeight:CGFloat =  50

let x:CGFloat =  30+(itemWidth + space) * CGFloat(i%2)

let y:CGFloat = 100+(itemHeight + space) * CGFloat(i/2)

let button = CloseupButton.init(frame: CGRect(x: x, y: y, width: itemWidth, height: itemHeight))

let datamodel = model[i]

let date = String().Get_Reallocattime(time: datamodel.Spktestdate!)

button.setTitle("\(date)", for: .normal)

button.numLabel.text = "\(datamodel.element)/\(datamodel.denominator)"

button.tag = i + 666

if datamodel.denominator == datamodel.element{

button.setImage(UIImage.init(named: "checkbox-checked"), for: .normal)

}else{

button.setImage(UIImage.init(named: "checkbox"), for: .normal)

}

button.imageEdgeInsets = UIEdgeInsetsMake(0, -170, 0, 0)

button.titleEdgeInsets = UIEdgeInsetsMake(0, -160, 0, 0)

button.addTarget(self, action: #selector(self.Select_Reallocationbutton(_:)), for: .touchUpInside)

self.contentView.addSubview(button)

let space:CGFloat = 10

var x:CGFloat? = nil

let itemWidth =  (self.ImagePhotoView.frame.size.width - space*5)/4

if BackSelectModelAry.IamageAry.count != 0 {

x =  (itemWidth + space) * CGFloat(2%4)

}else{

x = 5

}

//        let x:CGFloat =  (itemWidth + space) * CGFloat(BackSelectModelAry.IamageAry.count%4)

//        let y:CGFloat =  (itemWidth + space) * CGFloat(BackSelectModelAry.IamageAry.count/4)

let button = UIButton(frame: CGRect(x:x!, y:0, width:itemWidth, height: itemWidth))

button.addTarget(self, action: #selector(eventAddImage), for: .touchUpInside)

button.contentMode = .scaleAspectFill

button.layer.borderWidth = 2

button.layer.borderColor = PresentColor.cgColor

button.setImage(UIImage(named: "image_select"), for: UIControlState.normal)

self.ImagePhotoView.addSubview(button)

}

swift 创建九宫格在后面加按钮的更多相关文章

  1. 如何用Swift创建一个复杂的加载动画

    现在在苹果应用商店上有超过140万的App,想让你的app事件非常具有挑战的事情.你有这样一个机会,在你的应用的数据完全加载出来之前,你可以通过一个很小的窗口来捕获用户的关注. 没有比这个更好的地方让 ...

  2. swift:创建九宫格

    九宫格的创建是有规律可循的,每一个格子的水平和竖直方向的间隔是固定的,通过计算每一个格子的位置,然后把它们依次放到视图中即可. 一般的步骤为: 1.设置格子的总个数和每一列的格子数 2.求格子的间隔: ...

  3. 使用OC和swift创建系统自带的刷新界面

    使用OC和swift创建系统自带的刷新界面 一:swift刷新界面代码: import UIKit class ViewController: UITableViewController { // 用 ...

  4. OC与Swift创建pod

    Cocoa pods 是iOS最常用的类库管理工具   OC的使用   删除源   sudo gem sources -r https://rubygems.org/ 添加源(使用淘宝的镜像,记住要用 ...

  5. win32 htmlayout点击按钮创建新窗口,以及按钮图片样式

    最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...

  6. iOS 利用for循环创建九宫格

    // 利用for循环创建九宫格 - (void)createScratchableLatex{ // 总列数 ; // 每一格的尺寸 CGFloat cellW = (self.frame.size. ...

  7. SELECTION-SCREEN 加按钮

    这是我喜欢的这种模式,选择屏加个新建按钮,直接跳转到主屏幕做单据. 选择屏就直接查询,双击查询结果跳转到主屏幕.... 做好编辑控制,事件处理...EVERYTHING IS SOOOOOOO NIC ...

  8. swift:创建表格UITableView

    用swift创建单元格和用iOS创建单元格形式基本相同,就是语法上有些异样.swift中调用成员方法不再使用[ ]来发送消息,而是使用.成员方法的形式调用成员函数.这种格式非常类似于java中的点成员 ...

  9. js动态创建的select2标签样式加载不上解决办法

    js动态创建的select2标签样式加载不上:调用select2的select2()函数来初始化一下: js抛出了Uncaught query function not defined for Sel ...

随机推荐

  1. Entity Framework Core必须牢记的三条引用三条命令

    关于EntityFramework Core有三个重要的引用和三条重要的命令,掌握以这六条,基本用Entity Framework Core就得心应手了. 引用1:Install-PackageMic ...

  2. 厉害了!阿里安全图灵实验室在ICDAR2017 MLT竞赛刷新世界最好成绩

    近日,阿里安全图灵实验室(Alibaba Turing Lab)的ATL Cangjie OCR算法在ICDAR2017的MLT(Competition on Multi-lingual scene ...

  3. Redis之List

    一.Redis之List简介 1. List是简单的字符串列表,按照插入顺序排列. 2. 一个列表最多可存储232-1个元素(40多亿). 二.Redis之List命令行操作 Lrange:获取列表指 ...

  4. 【Spring源码分析】Bean加载流程概览

    代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...

  5. 关系型数据库工作原理-数据库查询器(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  6. 误操作导致 lvdisplay 命令不存在解决

    1.lvdisplay 命令不存在 查看lvm2 包被卸载2.执行 yum install lvm2 命令 发现 yum 被锁 3.删除yum.lock 发现/ 目录只读4.mount -o remo ...

  7. gulp详细入门

    gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试.检查.合并.压缩.格式化.浏览器自 ...

  8. MySQL增量订阅&消费组件Canal POC

    POC的目的:1.与MYSQL的对接方式,配置文档2.订阅的延迟3.订阅后宕机消息会不会丢失4.能不能从指定的点开始重新订阅5.高并发写入的时候,日志的顺序是否还能保持,不考虑消费的情况订阅是否会延迟 ...

  9. Oracle用户、授权、角色管理

    创建和删除用户是Oracle用户管理中的常见操作,但这其中隐含了Oracle数据库系统的系统权限与对象权限方面的知识.掌握还Oracle用户的授权操作和原理,可以有效提升我们的工作效率. Oracle ...

  10. 12.C++-构造函数与析构函数调用顺序,const成员函数,const对象

    单个对象创建时,构造函数的调用顺序 1.首先判断该对象的类是否拥有父类,若有则先调用父类的构造函数 2.判断该对象的成员是否是其它类的成员,若是则调用成员变量的构造函数(调用顺序和声明顺序相同) 3. ...