如果想要在屏幕上显示出内容
必须创建一个叫做UIWindow的对象,因为要想显示内容到屏幕上,就必须把内容添加到UIWindow对象内部,Window负责将内容绘制到屏幕上
模拟器
com+1/2/3/4调整模拟器大小
com+shift+h模拟home键
com+shift+h+h 查看运行后台
com+L 锁屏
模拟器异常:强制关闭模拟器com + option + esc
1 window
1.1.1 创建window对象
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
等同于自己添加分辨率CGRect rect = CGRectMake (0,0,375,667);
self.window = [[UIWindow alloc]iniWithFrame:rect];
1.1.2 显示window对象 [self.window makeKeyAndVisible];
1.1.3 设置背景颜色 self.window.backgroundColor = [UIColor whiteColor];
1.1.4 移交管理权 self.window.rootViewController = [[MyView alloc]init];
1.1.5 获得支持的字体 NSArray * array = [UIFont familyNames]; NSLog(@“%@”,array);
2 UIButton
2.1.1 创建button对象 UIButton * button = [[UIButton alloc]init];
类方法快速创建UIButton * button=[UIButton buttonWithType:UIButtonTypeCustom];
2.1.2 建立父子关系 [self.view addSubview:button];
2.1.3 设置正确的frame值 button.frame = CGRect(x, y, w, h);
2.1.4 设置背景颜色 button.backgroundColor = [UIColor lightGrayColor];
2.1.5 设置提示内容(默认UIControlStateNormal,高亮UIControlHighlighted)
[button setTitle:@“默认状态” forState:UIControlStateNormal]
2.1.6 修改文字大小 button.titleLabel.font = [UIFont systemFontOfSize:20];
2.1.7 不同状态显示不同字体颜色
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
2.1.8 设置不同状态下的背景图片
[button setBackgroundImage:[UIImage imageName] forState:UIControlStateNormal];
//CGFloat top, left, bottom, right;
//button.contentEdgeInsets = UIEdgeInsetsMake(0, -100, 0, 0);
button.imageEdgeInsets = UIEdgeInsetsMake(-40, 0, 0, 0);
button.titleEdgeInsets = UIEdgeInsetsMake(50,-100,0,0);
3.UILabel
2.1.1 创建label对象 UILabel * label = [[UILabel alloc]init];
2.1.2 建立父子关系 [self addSubview:label];
2.1.3 设置正确的frame label.frame = CGRectMake(x,y,w,h);
2.1.4 背景颜色 label.backgroundColor = [UIColor greenColor];
2.1.5 添加文字 label. text = @“label”;
2.1.6 文字颜色 label.textColor = [UIColor blueColor];
2.1.7 文字大小 label.font = [UIFont systemFontOfSize:40];
2.1.8 文字位置 label.textAlignment = NSTextAlignmentCenter;
2.1.9 附加
2.1.9.1改变字体样式,同时改变字体的大小
label.font = [UIFont fontWithName:@"Copperplate" size:30];
2.1.9.2显示的行数不确定,只需要给定0就可以,默认是1行
label.numberOfLines = 0;
2.1.9.3想要动态的计算UILabe的高度
1.UILabel的numberOfLines 必须设置为 0
2.UILabel对象的字体大小,必须与动态计算条件中给定的字体大小完全相同
3.参考的size,必须有一个值作为参考的临界点
根据要显示的具体内容,动态计算Frame的高度
NSStringDrawingUsesLineFragmentOrigin 最常用选项,
CGFLOAT_MAX 无限大
CGSize size = CGSizeMake(100, CGFLOAT_MAX);
NSFontAttributeName 代表字体属性的意思
NSDictionary * attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:13]};
size = [textContent boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
专门用来设置,字体相关属性的对象
NSMutableAttributedString * attString = [[NSMutableAttributedString alloc] initWithString:@"ios"];
NSDictionary * attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:30],NSForegroundColorAttributeName:[UIColor yellowColor]};
[attString setAttributes:attributes range:NSMakeRange(0, 1)];
NSFontAttributeName 设置文字的字体
NSForegroundColorAttributeName 设置文字的颜色
NSUnderlineStyleAttributeName 设置是否显示下划线
NSUnderlineColorAttributeName 设置下划线颜色
NSMakeRange(0, 1)代表属性要影响的范围
NSDictionary * attributes2 = @{NSFontAttributeName:[UIFont systemFontOfSize:50],NSForegroundColorAttributeName:[UIColor redColor],NSUnderlineStyleAttributeName:@(1),NSUnderlineColorAttributeName:[UIColor blackColor]};
[attString setAttributes:attributes2 range:NSMakeRange(1, 1)];
label.attributedText = attString;
4 UIView 屏幕上的所有组件都继承自UIView父类(UIButton, UILabel,UIWindow),都是在UIKit框架中
4.1.1 创建组件对象 UIView * view = [[UIView alloc]init];
4.1.2 建立父子关系 [self.window addSubview:view];
4.1.3 设置正确的frame view.frame = CGRectMake(x,y,w,h);
4.1.4 设置背景颜色 view.backgroundColor = [UIColor greenColor];
盒子模型,UI组件开发中是遵循一个盒子原则
被管理的子控件的坐标,永远是找它的直接管理父亲控件,作为参考
5 网上书店
5.1.1 设置要显示的行数和列数,以此计算x,y,w,h
int totalColom = 3;//列
int totalRow = 4;//行
5.1.2 创建视图对象
创建组件对象 UIView * bookView = [[UIView alloc]init];
建立父子关系 [self.view addSubview:bookView];
设置正确的frame bookView.frame = 动态计算的各个值
5.1.3 创建显示图书图片的button
创建组件UIButton * bookImageButton = [UIButton buttonWithType:UIButtonTypeCustom];
建立父子关系[bookView addSubview:bookImageButton];
设置正确frame bookView.frame = CGRectMake(x,y,w,h);
添加背景图片 [bookImageButton setBackgroundImage:[UIImage imageNamed:@“a”] forState: ];
5.1.4 创建显示书名的label
5.1.5 创建下载按钮
5.1.6 响应下载按钮的点击