OC中的布局-九宫格

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

关于九宫格的应用代码请点此布局

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

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

为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上,get

相关文章
相关标签/搜索