美文网首页
简单的MVC 之控制器

简单的MVC 之控制器

作者: 江R | 来源:发表于2017-01-10 15:36 被阅读0次
#import"ViewController.h"

#import"CZAppInfo.h"

#import"CZAppInfoView.h"

@interfaceViewController()

//存储从plist中获取的数据

@property(nonatomic,strong)NSArray*appInfos;

@end

@implementationViewController

//1懒加载

- (NSArray*)appInfos

{

if(_appInfos==nil) {

//调用appInfo的类方法,返回模型数组

_appInfos= [CZAppInfoappInfosList];

}

return_appInfos;

}

- (void)viewDidLoad {

[superviewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

NSLog(@"%@",NSHomeDirectory());

//2测试数据

//NSLog(@"%@",self.appInfos);

inttotalColumn =3;

CGFloatsubViewW =100;

CGFloatsubViewH =100;

//子view的横向间距=(父view的宽度- 3 *子view的宽度) / 4

CGFloatmarginX = (self.view.frame.size.width- totalColumn * subViewW) / (totalColumn +1);

//子view的纵向间距=20

CGFloatmarginY =20;

//3动态生成9宫格的方块

for(inti =0; i

//动态生成view

//UIView *subView = [[UIView alloc] init];

//[self.view addSubview:subView];

////从xib中加载subview

//NSBundle *bundle = [NSBundle mainBundle];

////加载xib中得view

//CZAppInfoView *subView = [[bundle loadNibNamed:@"CZAppInfoView" owner:nil options:nil] lastObject];

//封装自定义view

CZAppInfoView*subView = [CZAppInfoViewappInfoView];

[self.viewaddSubview:subView];

//计算frame

//当前子view的行号=当前遍历到得索引值/总列数

introw = i / totalColumn;

//当前子view的列号=当前遍历到得索引值%总列数

intcolumn = i % totalColumn;

//

//子view横坐标的公式=子view的横向间距+列号* (子view的横向间距+子view的宽度)

CGFloatsubViewX = marginX + column * (marginX + subViewW);

//子view纵坐标的公式= 20 +行号* (子view的纵向间距+子view的高度)

CGFloatsubViewY =30+ row * (marginY + subViewH);

subView.frame=CGRectMake(subViewX, subViewY, subViewW, subViewH);

//取得当前遍历到得数据

CZAppInfo*appInfo =self.appInfos[i];

subView.appInfo= appInfo;

//给subview的子控件赋值

////方式1

//UIImageView *iconView = subView.subviews[0];

//iconView.image = [UIImage imageNamed:appInfo.icon];

////方式2

//UILabel *nameView =(UILabel *)[subView viewWithTag:10];

//nameView.text = appInfo.name;

//subView.nameView.text = appInfo.name;

//subView.iconView.image = [UIImage imageNamed:appInfo.icon];

}

}

@end

=====================================

2、找公式

子view的横向间距= (父view的宽度- 3 *子view的宽度) / 4子view的纵向间距= 20

当前子view的行号=当前遍历到得索引值/总列数

当前子view的列号=当前遍历到得索引值%总列数

当前子view的列号=当前遍历到得索引值%总列数

子view横坐标的公式=子view的横向间距+列号* (子view的横向间距+子view的宽度)

子view纵坐标的公式= 50 +行号* (子view的纵向间距+子view的高度)2、计算9宫格位置,循环添加

相关文章

网友评论

      本文标题:简单的MVC 之控制器

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