IOS 九宫格实现思路

根据要求 显示图片 以九宫格形式排放

基本思路

 //显示总列数  可以随意改变
        int columnCount=3;
        //没个格子的宽度和高度
        CGFloat appW=85.0;
        CGFloat appH=95.0;
        //计算间隙
        CGFloat appMargin=(self.view.frame.size.width-columnCount*appW)/(columnCount+1);

        //读取资源文件  _apps.count表示资源个数
        NSString *path=[[NSBundle mainBundle] pathForResource:@"myAppRes.plist" ofType:nil];
        _apps=[NSArray arrayWithContentsOfFile:path];

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

            UIView *vi=[[UIView alloc] init];
            vi.backgroundColor=[UIColor greyColor];
            //计算列号和行号
            int colX=i%columnCount;
            int rowY=i/columnCount;
            //计算坐标
            CGFloat appX=appMargin+colX*(appW+appMargin);
            CGFloat appY=30+rowY*(appH+appMargin);

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

            [self.view addSubview:vi];

只需要改变总列数 和 宽高 就能显示需要的效果:如图

时间: 2024-10-07 05:29:31

IOS 九宫格实现思路的相关文章

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.计算间隙

iOS缓存清理思路的实现

首先在讲缓存清理之前讲讲文件管理的几个知识点 第一部分 文件管理几个常用的方法 一 比较两个文件的内容是否一样 /* -contentsEqualAtPath:andPath: does not take into account data stored in the resource fork or filesystem extended attributes. */ - (BOOL)contentsEqualAtPath:(NSString *)path1 andPath:(NSString

iOS 九宫格的实现

#import <UIKit/UIKit.h> @interface ViewController : UIViewController @property(strong,nonatomic) UILabel *lblNums; @end #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [supe

iOS软件更新思路

需要更新版本数组 needUpdateVersions{1.2.61.2.8} 历史版本数组 historyUpdateVersions1.2.41.2.51.2.6 更新数据库1.2.71.2.8 更新数据库 lastTowToFinalVersions倒数第二个版本到当前版本1.2.71.2.8如果只有一个历史版本,那么取当前版本1.2.8 finalNeedUpdateVersions需要更新版本数组中找到 >倒数第二个版本 <=最新版本 的版本数组1.2.8

九宫格计算思路

在同一行不断添加View Y值不变,X值:(间距+宽度) * (下标 % 总列数) 0%3 * (hMargin + width) 1%3 * (hMargin + width) 2%3 * (hMargin + width) 3%3 * (hMargin + width) 4%3 * (hMargin + width) 5%3(hMargin + width) 6%3 * (hMargin + width) 7%3 * (hMargin + width) 在不同行不断添加View Y值(间距

iOS九宫格布局

for (int i=0; i<[self.imagearray count]; i++) { UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect]; button.frame = CGRectMake(i%3*(SCREEN_WIDTH/3-1), i/3*(SCREEN_WIDTH/3-1)+self.view2.frame.origin.y+self.view2.frame.size.height+5,S

iOS之九宫格设计和数据模型转换

1. 九宫格计算思路(主要就是控件位置(x/y)的改变) 1.1利用控件的索引index(该父控件中子控件的个数)计算出控件所在的行号和列号 1.2利用列号计算控件的x值 = 行号 *(子控件的宽度 + 间距) 1.3利用行号计算控件的y值 = 列号 *(子控件的高度 + 间距) /* 清除超过该View范围的控件(控件还在,界面上看不见) self.View.clipsToBounds = YES; */ 2.HUD 2.1其他说法:指示器.遮盖.蒙板 2.2半透明HUD的做法 :背景色设置为

IOS开发UI基础之Plis文件-字典转模型

什么是plist文件? 在开发中直接将数据写在代码里面 不是一种合理的做法 如果数据经常改变 就需要经常翻开对应的代码进行修改 造成代码扩展性低 因此,可以考虑将经常变的数据放在?文件中进?行存储,程序启动后从?文件中 读取最新的数据.如果要变动数据,直接修改数据?文件即可,不?用修改代码 一般可以使?用属性列表?文件存储NSArray或者NSDictionary之类的数据,这 种“属性列表?文件”的扩展名是plist,因此也称为“plist?文件” 在Xcode创建plist文件的步骤: 解析

IOS之UI--小实例项目--添加商品和商品名(纯代码终结版)

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute