博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC中的布局-九宫格
阅读量:6266 次
发布时间:2019-06-22

本文共 831 字,大约阅读时间需要 2 分钟。

hot3.png

上班忙完之后稍得空闲,回想下一些OC技术,就做一下九宫格的布局与位置计算,想到哪里就写到哪喽。

第一:先上一张手画版的九宫格

154531_lzAI_2689738.png

第二:先预先来一些变量:每一个小格width=80,height:90,x轴上的两个小格之间的间距为xMargin,那么y轴的就是yMargin,假设一行可以布局m个小格(不只是图片上的画的那样,只是个例子).mainstoryboard中有多少小格变量

为counts

xMargin=(self.fram.size.width-width*m)/(m-1);//不理解的话可以套用上面一行三格的,加深理解yMargin自己给值就好//接下来我们要判断,所加的小格是在第几行,第几列就可以(这个很关键)counts=self.view.subViews.count;//注意一点:九宫格的第一行是0行,第一列是0列(方便理解下面行列的计算)//第几行row=counts/m;//当一行有三列时,那么当mainstoryboard上没有控件时counts=0,那么就是第0行//那么添加的小格的行y轴位置就是 0*(height+yMargin)//第几列的//由余数来判断是第几列的col=counts%m;//那么当mainstoryboard上没有控件时counts=0,那么就是第0列//那么列的x轴位置就是 0*(width+xMargin)//当counts=4时,即mainstoryboard上已有4个格子,那么第五个位置在哪里?//row=4/3=1   col=4%3=1  //由上可知,即 第一行的第一列(也就是九宫格三行三列最中间那个位置)//那么x轴    (列)1*(width+xMargin)   y轴   (行)1*(height+yMargin)

第三:九个小格布局在mainstoryboard上,

转载于:https://my.oschina.net/HYLApple/blog/669145

你可能感兴趣的文章
Linux车载系统的开发方向
查看>>
并发编程之五--ThreadLocal
查看>>
摄像头驱动OV7725学习笔记连载(二):0V7725 SCCB时序的实现之寄存器配置
查看>>
iOS播放短的音效
查看>>
[java] java 线程join方法详解
查看>>
JQuery datepicker 用法
查看>>
golang(2):beego 环境搭建
查看>>
天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十)态势标绘模块
查看>>
程序员社交宝典
查看>>
ABP理论学习之MVC控制器(新增)
查看>>
Netty中的三种Reactor(反应堆)
查看>>
网页内容的html标签补全和过滤的两种方法
查看>>
前端源码安全
查看>>
【CodeForces 618B】Guess the Permutation
查看>>
【转】如何实现一个配置中心
查看>>
Docker —— 用于统一开发和部署的轻量级 Linux 容器【转】
查看>>
Threejs 官网 - Three.js 的图形用户界面工具(GUI Tools with Three.js)
查看>>
Atitit.Java exe bat 作为windows系统服务程序运行
查看>>
session的生命周期
查看>>
数据库的本质、概念及其应用实践(二)
查看>>