iOS开发的九宫格技巧+示例代码

1、通过计算frame 的方式排列九宫格(九宫格算法)

 1>九宫格算法分析

-  1)每一列的x值一样,列号决定x值

-  2)每一行的y值一样,行号决定y值

-  结论:要想计算出某个”方框”的x和y,就要先获取某个”方框”所在的“列索引”和“行索引”

 

 2>通过修改 frame 实现九宫格排列

-  计算步骤:

-  1)确定每个app的宽和高

-  2)计算marginX,marginY,marginTop

-  3)计算每个app所在的行索引、列索引

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

----------------------------------------------------------------------------代码区-------------------------------------------------------------------------------------

#pragma mark - 其他方法

- (void)viewDidLoad {

    [super viewDidLoad];

    

    // 计算九宫格坐标的代码

    // 假设一行有3

    int columns = 3;

    

    // 设置每个appViewframe

    // 假设每个view的宽度和高度一定

    CGFloat appW = 75;

    CGFloat appH = 90;

    

    // 计算边距(间隔)

    // 计算屏幕的宽度

    CGFloat screenW = [UIScreen mainScreen].bounds.size.width;

    

    CGFloat marginTop = 30;

    // 水平方向的间距

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

    

    

    // 1. 根据self.apps中的数据创建对应的UIView, 并显示到界面上

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

        

        // 获取每个应用的数据

        NSDictionary *dict = self.apps[i];

        

        

        // 创建一个UIView

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

        

        

        // 计算每个appView所在的列的索引

        int col_idx = i % columns;

        // 计算每个appView所在的行索引

        int row_idx = i / columns;

        

        // 计算每个appViewxy

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

        CGFloat appY = marginTop + row_idx * (appH + marginTop);

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

        

        

        

        

        

        

        // appView添加到界面上

        [self.view addSubview:appView];


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值