IOS 九宫格算法

@interface ViewController ()

@property (nonatomic,strong) NSArray *apps; //获取.plist数据
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //九宫格的总列数
    int totalColumns=5;

    //1.1个格子的尺寸
    CGFloat appW=50;
    CGFloat appH=60;

    //2.计算间隙 =(控制器view的宽度 -5*应用宽度)/应用宽度+1
    CGFloat margin=(self.view.frame.size.width-totalColumns*appW)/(totalColumns+1);

    //3.要的应用个数创建对应的格子

    for (int index=0; index<self.apps.count; index++)
    {
        //3.1 创建1个格子
        UIView *appView=[[UIView alloc]init];

        //设置背景色
        appView.backgroundColor=[UIColor redColor];

        //3.2计算行号和列号
        int row =index /totalColumns;
        int col =index % totalColumns;

        CGFloat appX =margin+ col*(appW + margin);
        CGFloat appY =30+ row*(appH + margin);

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

        //3.3添加格子到控制器的View
        [self.view addSubview:appView];

    }

}
时间: 2024-10-19 00:51:25

IOS 九宫格算法的相关文章

iOS开发——UI篇&amp;九宫格算法

九宫格算法 关于iOS开发中九宫格的实现虽然使用不多,而且后面会有更好的方实现,但是作为一个程序员必需要知道的就是九宫格算法的实现. 一:实现思路: (1)明确每一块用得是什么view (2)明确每个view之间的父子关系,每个视图都只有一个父视图,拥有很多的子视图. (3)可以先尝试逐个的添加格子,最后考虑使用for循环,完成所有uiview的创建 (4)加载app数据,根据数据长度创建对应个数的格子 (5)添加格子内部的子控件 (6)给内部的子控件装配数据 二:算法的实现 1 /* 2 *

iOS开发系列-九宫格算法-xib

给大家演示 应用程序下载 小项目,效果图:涉及知识点:懒加载,九宫格算法,字典转模型,自定义UIView ,xib文件的使用 首先把素材拖到Xcode项目中:简单看一下素材文件 此时大家应该首先关注.plist后缀的文件,里面存放的是我们用的数据,接下来看一下plist文件里面的数据 从这里面可以看到有12个应用程序下载,也就是12个UIView控件, 接下来,我们就加载这个plist文件,使用里面的数据.首先不是把plist文件拖拽到Xcode中就会自动使用的,而是加载plist文件,才能使用

1到9的数字填充后每行每列的数字相加都等于15的九宫格算法

1 /// <summary> 2 /// 九宫格算法 3 /// </summary> 4 public void NineTable() 5 { 6 //创建一个三阶方阵 7 int[,] arr = new int[3, 3]; 8 //第3行的行下标 9 int a = 2; 10 //第2行的行下标 11 int b = 3 / 2; 12 //给数组赋值 13 for (int i = 1; i <= 9; i++) 14 { 15 arr[a++, b++] =

1-10(退出键盘,设置按钮的背景图,transform属性,imageView序列帧动画,九宫格算法...)

(1-10目录) 1.取得2个文本输入框的值 2.退出键盘 3.设置按钮的背景图 4.执行动画 5.手动创建按钮以及设置按钮的一些基本属性 6 transform属性 7.imageView序列帧动画 8.九宫格算法 9.通过xib创建局部控件,利用模型封装加载数据 10设置状态栏的样式为白色 { 扯淡环节: 工作这么久了, 发现一些细节有时候总是忽略, 现在就把我刚接触时的知识点给整理出来!, 没事自己看看, 也分享给大家! 分享,创造快乐!哈哈 xq每天都生活在快乐当中, 愿你们也是! }

ios Swift 算法

// Playground - noun: a place where people can play import Cocoa var nums = Int[]() for _ in 1...50 { nums.append(random()) } nums ////冒泡排序 /* var count = 0; for(var i = 0 ; i < nums.count-1; i++){ for(var j = 0; j < nums.count-i-1;j++){ count++; if

iOS常见算法以及应用

算法比较 关键词 二分 递归 分治 回溯 冒泡排序 思想:两次循环,外层进行循环次数的控制,内层循环,进行数据之间的比较,大的数据上浮(下沉) 12345678910111213141516171819202122232425262728293031323334353637383940 #pragma mark - Objective-C//冒泡排序- (void)bubbleSort:(id)array{ if (!([array isKindOfClass:[NSArray class]]

iOS UI基础 九宫格算法

案例分析: 分析: 代码案例实现: // //  ViewController.m //  01-九宫格算法 // //  Created by FlyLee on 14-9-12. //  Copyright (c) 2014年 FLYLEE.CN. All rights reserved. // #import "ViewController.h" @interface ViewController () /* 数据容器 */ @property (nonatomic,strong

iOS应用九宫格算法

1.框框横向间隔为:( "界面的总宽度"-"界面每行的控件的宽度" * "每行要现实的列数(这里是3)") / ("列数 + 1") 2.框框纵向间隔可以自定义写死 3.每个框框横向摆放的位置是:(框框宽度+间隔宽度)乘以(列号) 4.每个框框纵向摆放的位置为:(框框高度+间隔宽度)乘以(行号) + 顶端间隔[这里是30] 5.每个框框在第几行第几列的算法为: 行号为"框框的序号对列数取商", 列号为&qu

iOS开发 九宫格算法位置分析

每一个按钮的x值=  间隙 + (按钮宽度+间隙) * 列号 每一个按钮的y值=  20(避开状态栏) +(按钮高度度+间隙) * 行号 // 计算行号和列号 int row = index / totalColumns; int col = index % totalColumns; //计算位置 CGFloat appX = margin + (appW +margin) *col; CGFloat appY = 20 + (appH + margin) * row;