美文网首页开发技巧
IOS开发之九宫格设计思路

IOS开发之九宫格设计思路

作者: 南波万_ | 来源:发表于2016-03-25 11:12 被阅读789次

引言

在IOS开发 UI设计中,大多数的软件界面都采用九宫格的序列方式来排列


九宫格计算思路



-设计思路:将九个红色的方框和白色的字体封装到白色的底色当中,即将UIImageview控件和UILabel控件装入白色的UIView中。

UIImageview * view = [[UIImageview alloc] init];

UIImageview *smallview = [[UIImageview alloc] init];

[view addsubview:smallview]

UILabel *label = [[UILabel alloc] init];

[view addsubview:label];

- 利用控件的索引index计算出控件所在的行号和列号

1、先将底部的白色控件写入interface中;

@property (strong, nonatomic) IBOutlet UIView *bigview;

2、计算出3个子控件之间的间隙值;

假设红色子控件的宽为Width和高度Heigth

CGFloat Width = 78;

CGFloat Height = 88

int colsX = 3;

int colsY = 3;

//每列之间的间隙值

CGFloat marginX = (self.bigview.frame.size.width - Width * closX) / (colsX -1);

//每列之间的间隙值

CGFloat marginY = (self.bigview.frame.size.height - Height * close) / (colsY -1);

3、利用列号计算控件的x值

//计算索引长度,索引的长度其实就是红色子控件所在的白色底色控件的数组的位置(即红色子控件所标示的0、1、2、3等)

NSUInteger index = self.bigview.subviews.count;

//第0行我们可以得出是由0、1、2的索引对3取余数得来,第一行由3、4、5的索引对3取余数得来,以此类推

NSUInteger indexX = index % 3;

CGFloat WidthX = indexX * (Width + marginX);

4、利用行号计算控件的y值

//第0列我们可以得出是由0、3、6的索引对3相除得来,第一行由2、4、7的索引对3相除得来,以此类推

NSUInteger indexY = index / 3;

CGFloat HeightY = indexY * (Height + marginY);

bagview.frame = CGRectMake(WidthX, HeightY, Width, Height);

[self.view addsubview: view];

相关文章

网友评论

    本文标题:IOS开发之九宫格设计思路

    本文链接:https://www.haomeiwen.com/subject/aborlttx.html