美文网首页
UIview+ UIWindow的总结

UIview+ UIWindow的总结

作者: e40c669177be | 来源:发表于2016-03-07 20:09 被阅读127次

frame: 该view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)
bounds:该view在本地坐标系统中的位置和大小。(参照点是,本地坐标系统,就相当于ViewB自己的坐标系统,以0,0点为起点),改变bounds只会改变子视图的位置,其本身位置不会发生改变(大多数在自定义的view里面是有)
center:该view的中心点在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)
UIWindow:一个程序中至少有一个window
AppDelegata.m方法

协议中定义的这些需要实现的方法的作用:

1.-(void)applicationWillResignActive:            (UIApplication *)application
  说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了
2.-(void)applicationDidBecomeActive:(UIApplication *)application
  说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反
3.-(void)applicationDidEnterBackground:(UIApplication  *)application
  说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
4.-(void)applicationWillEnterForeground:(UIApplication *)application
  说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。
5.- (void)applicationWillTerminate:(UIApplication *)application
  说明:当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。
6.- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
  说明:iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止
7.- (void)applicationSignificantTimeChange:(UIApplication*)application
  说明:当系统时间发生改变时执行
8.- (void)applicationDidFinishLaunching:(UIApplication*)application
  说明:当程序载入后执行
9.- (void)application:(UIApplication)application  willChangeStatusBarFrame:(CGRect)newStatusBarFrame
  说明:当StatusBar框将要变化时执行
10.- (void)application:(UIApplication*)application willChangeStatusBarOrientation:        (UIInterfaceOrientation)newStatusBarOrientation
    duration:(NSTimeInterval)duration
  说明:当StatusBar框方向将要变化时执行
11.- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url
  说明:当通过url执行
12.- (void)application:(UIApplication*)application  didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
  说明:当StatusBar框方向变化完成后执行
13.- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame
  说明:当StatusBar框变化完成后执行

UIView重要的属性

UIView *simpleView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
simpleView.backgroundColor = [UIColor blueColor];

//1.设置显隐性,默认为no
simpleView.hidden = NO;

//2.设置透明度
//透明度 0 为全透明

simpleView.alpha = 0.5;

//设置tag值,尽量在100以上
simpleView.tag = 101;


 //添加父视图
[self.window addSubview:simpleView];
//获取父视图           强制转化
UIWindow *sWinder = (UIWindow *)simpleView.superview;
sWinder.backgroundColor = [UIColor yellowColor];

//获取子视图

NSArray *array = self.window.subviews;
for (UIView *view in array) {
    NSLog(@"%@",view);
   // 修改子视图的背景颜色
    view.backgroundColor = [UIColor darkGrayColor];
} 

屏幕的尺寸

  iPhone3G/iPhone3GS/4/4S: 320*480
  iPhone5/iPhone5S/iPhone5C :320*568
  iPhone6/iPhone6S:375 *667
  iPhone6P/6SP:414*736

打印屏幕尺寸

  NSLog(@"%@",NSStringFromCGRect([UIScreen mainScreen].bounds));


 //1.创建并初始化(如果有自己特有的初始化方法,直接使用,否则,使用父类的)
UILabel *nameLable = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 394, 300)];
//2.设置属性
nameLable.backgroundColor = [UIColor blueColor];  
//设置文本
nameLable.text = @"林林&大宝";
nameLable.textAlignment = NSTextAlignmentLeft;//居左
nameLable.textAlignment = NSTextAlignmentRight;//居右
nameLable.textAlignment = NSTextAlignmentCenter;//居中
nameLable.textColor = [UIColor yellowColor];//改变字体颜色  
nameLable.font = [UIFont systemFontOfSize:30];//默认大小17号 
nameLable.text = @"linlin&dabaoNSArray and its subclass NSMutableArray manage ordered collections of objects called arrays. NSArray creates static arrays"; 
nameLable.font = [UIFont fontWithName:@"Symbol" size:17];

NSArray *array1 = [UIFont familyNames]; //系统提供的所有字体类型
NSLog(@"%@",array1);


//设置阴影
nameLable.shadowOffset = CGSizeMake(2, 2);
nameLable.shadowColor = [UIColor grayColor];

//设置行数
nameLable.numberOfLines = 0; //0代表多行
//设置换行模式
nameLable.lineBreakMode = NSLineBreakByTruncatingHead;

pragma mark ---layer----

//UIView z之所以能够被显示到屏幕上,是因为它内部有一个layer层,在创建UIView的时候,View内部会自行创建一个layer图层,我们可以通过view,layer访问到这个图层
//当view需要显示在屏幕上的时候,会调用drawRect方法进行绘制,并将所有的内容绘制在自己的图层上,当绘制完毕,系统会将图层copy到屏幕上,完成view显示
//也就是说view本身不具有显示的功能,具有显示功能的是它内部的图层


//设置边框
nameLable.layer.borderWidth = 10;//边框的宽度            类型转化
nameLable.layer.borderColor = [UIColor lightGrayColor].CGColor;//边框的颜色
nameLable.layer.cornerRadius = 50;//设置圆角(内切圆的半径50)
nameLable.layer.masksToBounds = YES;//切除多余的边角
nameLable.clipsToBounds = YES;//也可以进行圆角多余切除,但是效率底

//3.添加到视图
[self.window addSubview:nameLable];

UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 200, 200)];
label1.backgroundColor = [UIColor greenColor];
label1.layer.cornerRadius = 100;
label1.layer.masksToBounds = YES;
label1.text = @"💘";
label1.userInteractionEnabled = NO;//用户交互默认    是关闭的
label1.font = [UIFont systemFontOfSize:170];
[self.window addSubview:label1];

UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(20, 300, 300, 50)];
label2.backgroundColor = [UIColor grayColor];
label2.font = [UIFont systemFontOfSize:50];
label2.text = @"驴会倒着念";
//旋转
label2.transform = CGAffineTransformMakeRotation(M_PI);
[self.window addSubview:label2];

相关文章

网友评论

      本文标题:UIview+ UIWindow的总结

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