九宫格算法

//九宫格算法。

/*

计算步骤

1,确定每个app的宽和高

2,计算marginX,marginY, marginTop

3,计算每个app所在的行索引和列索引

4,根据当前app的行索引和列索引计算appX和appY

*/

-(void)scratchableLatexAlgorithm{

NSString *path = [[NSBundle mainBundle]pathForResource:@"plist文件名" ofType:nil];

NSArray *array = [NSArray arrayWithContentsOfFile:path];

//获取页面view的宽度

CGFloat viewWidth = self.view.frame.size.width;

//假设每行的应用个数

int columns = 3;

//每个应用的宽和高

CGFloat appW = 75;

CGFloat appH = 90;

CGFloat marginTop = 30;

CGFloat marginX = (viewWidth - appW * columns)/(columns + 1);

CGFloat marginY = marginX;

for (int i=0; i<array.count; i++) {

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

//计算每个单元格所在的列索引

int colIndx = i%columns;

//计算每个单元格所在的行索引

int rowIdx = i/columns;

CGFloat appX = marginX + colIndx * (appW + marginX);

CGFloat appY = marginTop + rowIdx * (appH + marginY);

view.frame = CGRectMake(appX, appY, appW, appH);

[self.view addSubview:view];

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 像这样的九宫格的元素位置的算法,还是比较简单的,下面就来分析一下: 九宫格算法 三行三列的九宫格的每一个元素的位置...
    Coder007阅读 14,229评论 1 2
  • 接下来我们看Base文件夹下的UIKIt文件夹的内容。 1.UIColor+YYAdd 这里看了这个类,里面有许多...
    充满活力的早晨阅读 2,317评论 0 1
  • 前言:看了几篇简书,九宫格密码解锁,看着不错,拿来学习一下。 一、实现效果 二、手势解锁实现过程 分析: 如图所示...
    麦穗0615阅读 7,380评论 14 62
  • Github地址:-CollectionViewLayout-CollectionViewFlowLayout- ...
    大冲哥阅读 5,281评论 1 10
  • 这几天看了大家都在踊跃地报名竞选官员,我一直处于去还是不去的犹豫阶段。最初加入俱乐部就是鼓足了勇气,因为家里我是带...
    batheny阅读 201评论 2 2