iOS app = 各种UI控件 + 各种业务逻辑和算法
window是窗口,每一个app都需要借助window将内容展示给用户看。
在iOS中,使用UIWindow类来表示窗口,通常一个应用程序只创建一个UIWindow对象。
window的主要作用是呈现内容给用户,我们不会对window做太多操作。
view(视图):代表屏幕上的一个矩形区域。iOS中用UIVIiew来表示视图
iOS中所有能看到的内容都是view或子类。
// appDelegate.m
#import "AppDelegate.h"
#import "RootViewController.h"
//延展,管理私有实例变量及方法
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)dealloc{
[_window release];
[super dealloc];
}
//window是窗口,每个app都需要借助window将内容展现给用户看。在iOS中,使⽤UIWindow类来表⽰窗口,通常⼀个应⽤程序只创建⼀个UIWindow对象。window的主要作用是呈现内容给用户,我们不会对window做太多操作。
//程序在这个方法开始启动
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 每一个应用程序都有一个主窗口
// 创建一个窗口对象设置frame(大小)
//1、[UIScreen mainScreen].bounds 等同于屏幕大小
self.window = [[UIWindow alloc]initWithFrame:[UIScreenmainScreen].bounds];
// 2、设置窗口的颜色
self.window.backgroundColor = [UIColor yellowColor];
// 参数在 0 到 1 之间,alpha是透明度
self.window.backgroundColor = [UIColor colorWithRed:0 green:1 blue:1alpha:0.6];
// 3、使窗口成为主窗口并可见。(只有主窗口要设置可见)
// 不设置, 界面 view 显示不了
[self.window makeKeyAndVisible];
// 4、创建一个视图控制器对象,每一个控制器自带一个视图,Xcode7.0 更新后要加一个根视图控制器
RootViewController *rootVC = [[RootViewController alloc]init];
self.window.rootViewController = rootVC;
// 模拟器的基本操作
// Command + shift + h 回到主界面
// command + 数字模拟器缩放
// command + 方向键横竖屏转换
// option(alt) 手指触屏缩放
[rootVC release];
[self.window release];
return YES;
}
// ViewController.m
//UIView屏幕上的一块矩形区域,UIView是所有控件的父类
/*
iPhone 4 4s 3.5寸 320 * 480;
iPhone 5 5s 4.0寸 320 * 568;
iPhone 6 4.7寸 375 * 667;
iPhone 6plus 5.5寸 414 * 736;
*/
#import"RootViewController.h"
@interfaceRootViewController ()
@end
@implementationRootViewController
//view(视图):代表屏幕上的⼀个矩形区域。iOS中用UIView来表示视图前面ppt⾥看到的各种UI控件都属于view。不同的控件代表不同种类的view。iOS中所有能看到的内容都是view或其⼦子类。
// 编译器自动生成,视图加载完成
//UILabel(标签):是显⽰⽂本的控件。在App中UILabel是出现频率最高的控件。UILabel是UIView⼦类,作为⼦类⼀般是为了扩充⽗类的功能,UILabel扩展了⽂字显⽰的功能,UILabel是能显示文字的视图。
-(void)viewDidLoad {
[super viewDidLoad];
// 一、
// 每个控制器自带一个视图(屏幕等大)。
//上层的视图会覆盖下层的视图,视图开始默认透明
//给视图控制器及其自带视图设置背景颜色
self.view.backgroundColor = [UIColorwhiteColor];
// 展示一个视图的步骤
// 1、创建视图对象,
// 2、设置对象的一系列属性
// 3、添加到父视图上。
//self.view.hidden = YES; // 父视图隐藏后子视图也会隐藏
//UIView的层级关系
//1.任何一个view可以有很多的子视图,但是只能有一个父视图
//2.父视图对子视图拥有所有权,在添加子视图的时候,子视图的引用计数 +1
//3.父视图和子视图只是一个相对的概念
//4.子视图的位置是以父视图的坐标原点来计算的
// frame 和 center 都是相对于父视图的原点进行设置,只不过frame是设置子视图的原点,而center设置子视图的中点,而 bounds 设置子视图的位置,本身不发生改变,设置左上角的坐标,改变后,子视图会根据设置后的原点坐标进行改变位置。
// frame是相对于父视图的原点,以父视图的原点为原点
// 创建视图对象
UIView *greenView = [[UIViewalloc]initWithFrame:CGRectMake(50, 50, 150, 50)];
// 设置背景颜色
greenView.backgroundColor = [UIColorgreenColor];
//添加到父视图
[self.view addSubview:greenView];
// 若父视图一样,设置位置有重叠,后面的代码的视图会覆盖前面的代码的视图
UIView *yellowView = [[UIViewalloc]initWithFrame:CGRectMake(50, 120, 150, 60)];
yellowView.backgroundColor = [UIColoryellowColor];
[self.view addSubview:yellowView];
UIView *blueView = [[UIViewalloc]initWithFrame:CGRectMake(100, 0, 100, 100)];
blueView.backgroundColor = [UIColorblueColor];
// 重新设置视图大小
blueView.frame = CGRectMake(180, 0, 60,60);
[greenView addSubview:blueView];
// 通过center(中心点)改变视图的位置
// center 也是相对于父视图而言 (以父视图原点为原点)
blueView.center = CGPointMake(0, 0); // 设置中点为父视图greenView的原点
blueView.backgroundColor = [[UIColorblueColor]colorWithAlphaComponent:0.3];
// bounds:默认 origin(原点(0,0);
// 可以通过bounds 修改子视图的位置以及当前视图的大小
// bounds 是相对于自身而言
// bounds的 X 和 Y 为正,子视图往左上角跑,否则往右上角
UIView *redView = [[UIViewalloc]initWithFrame:CGRectMake(10, 10, 40, 40)];
redView.backgroundColor = [UIColorredColor];
[blueView addSubview:redView];
NSLog(@"%f,%f",blueView.bounds.origin.x,blueView.bounds.origin.y);
blueView.bounds = CGRectMake(0, 0, 100,100);
// 把 blueView 自身视图的左上角设置为(10,10) 原点向左上角移动,子视图(redView)添加进来时,会以更改后的原点为原点设置位置。
// blueView.bounds = CGRectMake(10, 10, 100,100);
// 结构体快速构造
// CGRect rect = CGRectMake();
// CGSize size = CGSizeMake();
// CGPoint origin = CGPointMake();
// // 二、视图的层次
// UIView *greenV = [[UIViewalloc]initWithFrame:CGRectMake(100, 100, 200, 100)];
// UIView *redV = [[UIViewalloc]initWithFrame:CGRectMake(120, 120, 100, 100)];
// UIView *brownV = [[UIViewalloc]initWithFrame:CGRectMake(140, 140, 100, 100)];
//
// greenV.backgroundColor = [UIColorgreenColor];
// redV.backgroundColor = [UIColor redColor];
// brownV.backgroundColor = [UIColorbrownColor];
//
// //添加视图
// [self.view addSubview:greenV];
// [self.view addSubview:redV];
// // 父视图相当于一个容器(数组),加入的子视图引用计数增加,最先进去的视图数组下标为0.
// [self.view insertSubview:brownV atIndex:0];
// [self.view insertSubview:brownVaboveSubview:redV];
// [self.view insertSubview:brownVbelowSubview:greenV];
//
//// // 删除一个视图从父视图上。
//// [brownV removeFromSuperview];
//
// // 2、改变视图层次
// [self.view exchangeSubviewAtIndex:0withSubviewAtIndex:2];
// [self.view sendSubviewToBack:brownV];
// [self.view bringSubviewToFront:brownV];
//
// [greenV release];
// [redV release];
// [brownV release];
// 3、 UIView的属性
// UIView *view = [[UIViewalloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
// // view.backgroundColor = [UIColororangeColor];
// [self.view addSubview:view];
// view.backgroundColor = [[UIColororangeColor] colorWithAlphaComponent:0.1]; //能够使父视图隐藏而子视图不隐藏
// 视图的显隐(默认是NO)
// view.hidden = YES;
// 视图的tag值
// view.tag = 100;
// 根据tag值寻找视图
// UIView *v = [self.view viewWithTag:100];
// NSLog(@"%@",v);
// // 寻找父视图
// UIView *supView = [view superview];
// NSLog(@"%@",supView);
// // 子视图
// NSArray *arr = [view subviews];
// NSLog(@"%ld",arr.count);
// 视图透明度(改变父视图的透明度,子视图的透明度会跟着改变)
//view.alpha = 0.1;
// UIView *subView = [[UIViewalloc]initWithFrame:CGRectMake(30, 30, 100, 100)];
// subView.backgroundColor = [UIColorredColor];
// [view addSubview:subView];
//
// [subView release];
// [view release];
// UILabel:继承于UIView,侧重于文本的显示
UILabel *label = [[UILabelalloc]initWithFrame:CGRectMake(50, 100, 200, 200)];
// 设置背景颜色
label.backgroundColor = [UIColoryellowColor];
// 设置文本
label.text = @"大人明天不上班,大保健来不来";
//设置文本颜色
label.textColor = [UIColor redColor];
// 设置行数,默认 1 行
// 如果设置为 0 ,默认 N 行,N 由 label 的高度决定
label.numberOfLines = 0;
//设置换行模式
label.lineBreakMode =NSLineBreakByTruncatingMiddle;
//设置字体,默认是17号字体
// label.font =[UIFont systemFontOfSize:30];
label.font = [UIFont systemFontOfSize:20weight:30];
// // 获取系统的字体
// NSArray *arr = [UIFont familyNames];
// for (NSString *s in arr) {
// NSLog(@"%@",s);
// }
// 设置对齐方式
label.textAlignment = NSTextAlignmentRight;
// 设置阴影以及颜色(文字)
label.shadowOffset = CGSizeMake(5, 5);
label.shadowColor = [UIColor blueColor];
// 设置 label 的圆角
label.layer.cornerRadius = 100; //设置边角半径
label.layer.borderColor = [UIColorgreenColor].CGColor;
label.layer.borderWidth = 2;
// // 超出部分边缘裁剪(指超出边框)
// label.clipsToBounds = YES;
// // layer的裁剪
// label.layer.masksToBounds = YES;
// 添加到父视图
[self.view addSubview:label];
[label release];
}
-(void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end