UI day 1 UIView

1 . 当应用程序加载完成的时候触发,此时如果你想让应用程序在加载的时候显示内容,就在该方法中写入要显示的内容
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
#pragma mark  self.window 的认知
创建应用程序的窗口 self.window 是本应用窗口对象,主要作用将内容呈现给用户
UIScreen是个屏幕类
[UIScreen mainScreen]获取主屏幕
[[UIScreen mainScreen] bounds]] 获取主屏幕的大小
self . window = [[[ UIWindow alloc ] initWithFrame :[[ UIScreen mainScreen ] bounds ]] autorelease ];
// Override point for customization after application launch.
    //UIColor 是个颜色类 ; 设置 self.window.backgroundColor 的颜色
   
self . window . backgroundColor = [ UIColor whiteColor ];
   
// self.window 设置为应用的主屏幕,并显示出来,也就是可见
    [
self . window makeKeyAndVisible ];
   对于屏幕上看到的内容,都是UIView以及UIView的子类
    UIView 代表屏幕上的一块矩形区域
    如果想在屏幕上绘制一个矩形,需要知道左上 2 的坐标(即使距离屏幕左上角(屏幕坐标系的原点),还有矩形的宽和高
    /*
    
快速创建结构体变量
     CGRect
(位置,大小)
     CERectMake
();
     CGPoint(
)
     CGPointMake
();
    
     CGSize
(大小)
     CGSizeMake
();
    
     */
2.创建一个UIView对象   
步骤:
1.创建ULView对象
UIView*redView = [[UIViewalloc]initWithFrame:CGRectMake(50,100,100,100)];
3. 修改视图的背景颜色,默认是透明的
redView.backgroundColor= [UIColorredColor];
4.添加到父视图上
[self.window addSubview:redView];
2.释放所有权
[redViewrelease];
   
3.
UIView*greenView = [[UIViewalloc]initWithFrame:CGRectMake(50,200,100,100)];
    greenView.
backgroundColor= [UIColorredColor];
    [self.window addSubview:greenView];
    cView.alpha=0.8;//控制透明度
    cView.hidden= YES;//控制的显隐性
    [greenViewrelease];
想查看屏幕大小不需要记忆,可以获取屏幕大小后打印即可,想查看不同屏幕大小时,只需要更改设备名称。
   CGRect  new = [[UIScreenmainScreen]bounds];
   将结构体变量转为字符串对象输入
   NSStringFromCGRect();
   NSStringFromCGSize();
   NSStringFromCGPoint();
   NSLog(@"%@",NSStringFromCGRect(new));

4.UIView的一些重要属性
UIView的常见属性
1)subViews:子视图,获取到一个视图的所有子视图,一个视图可以有多个子视图
(2)superview:父视图,获取到一个视图的父视图,一个视图只能有一个父视图
(3)Hidden显隐性,控制视图的显示或者隐藏;BOOL类型,默认值是No,显示视图
(4)alpha:透明度,透明度的范围:0.0~1.1之间,默认是1.0
(5)background,视图的背景颜色,颜色通过UIColor赋值
(6)tag值:标记,作为这个视图的唯一标示,整数值,一般都用在100以上
5.获取window上的所有子视图
UIWindow
NSArray*subArray =self.window.subviews;
NSLog(@"%@",subArray);

6.获取窗口的父视图
self.window 没有父视图
UIView*father =self.window.superview;
NSLog(@"%@",father);
   
7.获取cView父视图
 UIView*fatherView1 = cView.superview;
   
NSLog(@"===%@",fatherView1);
   
UIView *m = aView.superview;
   
NSLog(@"======%@",m);

8.通过tag值获取视图
父视图可以通过 viewWithTag 方法拿到它身上的子视图
UIView*tagView =  [self.windowviewWithTag:103];
NSLog(@"-----%@",tagView);
#pragma mark - 在分组的基础上再加一条横线
#pragma mark通过调用方法展示self.window上的子视图
[self showViewUseTag:103];


//通过tag值获得子视图
- (
void)showViewUseTag:(NSInteger)tag{
   
   
//通过tag值可以再其他的方法中拿到self.window上的子视图
 
UIView  *view =   [self.windowviewWithTag:tag];
    view.
backgroundColor= [UIColor redColor];
   
NSLog(@"mmmmm%@",view);
}

9. 获取 aview 的方法
1.self.window + tag
UIView*aaView = [self.windowviewWithTag:101];
NSLog(@"======================%@",aaView);
2. 通过 subviews
UIView*AView =self.window.subviews[1];
NSLog(@"---------------%@",AView);
3.通过下标
UIView*AAView = [self.window.subviewsobjectAtIndex:1];
NSLog(@"+++++++++++++++%@",AAView);
4.通过tag值获得子视图;也就是调用方法
[selfMMViewUseTag:101];
- (void)MMViewUseTag:(NSInteger)aatag {
   UIView *aaaView = [self.windowviewWithTag:aatag];
   
NSLog(@"====================================%@",aaaView);
}

10.这是最简单的写法
- (void)dealloc
{
//    [_window release];
//    _window = nil;
   
self.window=nil;
    [
super dealloc];
}

11.UIView的重量级属性
UIView的重量级属性:frame  center   bounds

1.frame:包含(左上角的坐标以及size矩形区域的大小),主要用来控制一个视图的位置和大小,其中位置相对于父视图原点坐标的x轴和y轴距离

2.center :中心点,视图的中心点的坐标,相对于父视图坐标原点位置
center.x=frame.origin.x + frame.size.width/2
center.y=frame.origin.y + frame.size.height/2
center 改变, frame 也变; frame 改变, center 也变

3.bounds: 边界,一个视图的边界, CGRect origin size ), origin 是矩形区域左上角相对于自身坐标系的原点位置, size 是矩形区域的大小,一个视图创建出来后,默认 bounds origin 的位置和自身视图的原点是重合的; bounds 的( size )大小和 frame 的( size )大小是一样的 ; 修改一个视图的 bounds origin x y )时候,视图的 frame 不变, centrer 也不变;(只做了解)修改一个视图的 size frame 变化, center 不变

4.修改boundsorigin的影响的自身原点的坐标位置,也即是影响了自身子视图的位置

12. #pragma mark 修改一个视图 frame
UIView*aView = [[UIViewalloc]initWithFrame:CGRectMake(60,184,200,200)];
定义一个矩形的结构体变量
  CGRect rect = CGRectMake(100,100,200,200) ;
    aView.
frame = rect;
   
    aView.frame.origin.x = 100; 视图的 frame 不能被单个修改,只能整体赋值
   CGRect rect1 = aView.frame;// 先把 frame 取出来,赋到
    rect1.origin.x= 100;
    rect1.origin.y= 100;
    aView.frame= rect1;


13.#pragma mark 修改一个视图的center
//    aView.center.x = 100; 视图的 center 不能被单个修改,只能整体赋值
  CGPoint center = CGPointMake(100,100) ;
    aView.center= center;
   
NSLog(@"====%@",NSStringFromCGPoint(aView.center));
   
NSLog(@"%@",NSStringFromCGRect(aView.frame));
   


14.#pragma mark 修改一个视图的 bounds
    aView.bounds= CGRectMake(100,0,100,200);
   
NSLog(@"%@",NSStringFromCGRect(aView.bounds));
   
NSLog(@"====%@",NSStringFromCGPoint(aView.center));
   NSLog(@"%@",NSStringFromCGRect(aView.frame));
    addSubview:在父视图上添加子视图

15. insertSubview:A  aboveSubvoew:B   B 视图上插入 A 视图
    [self.windowinsertSubview:bViewaboveSubview:cView];

   
   intserSubview:A beloSubview:B B视图下插入A视图
    [self.windowinsertSubview:cViewbelowSubview:bView];
   
   insertSubview:A atIndex:下标, A视图添加到指定位置
    [self.windowinsertSubview:cViewatIndex:1];
   
   调整视图关系的方法
   bringSubviewToFront 将视图 A 调整到所有子视图的最前面
    [self.windowbringSubviewToFront:aView];
   
   sendSubviewToBack:将视图A调整到所有子视图的最后面
    [self.windowsendSubviewToBack:aView];
   
 exchangeSubviewAtIndex:下标1  withSubviewAtIndex:下标2交换两个指定位置的子视图
  [self.window exchangeSubviewAtIndex:1withSubviewAtIndex:2];
   
   removeFromSuperviewA视图从父视图上移除
    [cView removeFromSuperview];

16.视图的层级关系
     1.最后添加的子视图肯定在所有视图的最前面
     2.
子视图永远都在父视图的前面
     3.
子视图的添加是有顺序的
     4.
父视图通过subview数组管理所有的子视图
     5.
如果想调整视图之间的层级关系,需要通过父视图来调整
     6.
如果想从父视图上移除,使用将要移除的对象来调用方法

17.定时器
           第一个参数:设置每过多长时间执行一次定时操作 
    
第二个参数:有谁来执行操作
    
第三个参数:选择执行的操作
    
第四个参数:用户信息nil
    
第五个参数:是否需要重复定时器操作

[NSTimerscheduledTimerWithTimeInterval:0.5target:selfselector:@selector(printHello)userInfo:nilrepeats:YES];
   
self.window.backgroundColor= [UIColorwhiteColor];
    [self.windowmakeKeyAndVisible];
self . window . backgroundColor = [ UIColor whiteColor ];
    [self.windowmakeKeyAndVisible];
#pragma mark 实现选择器中的方法
- (void)printHello{
   
NSLog(@"Hello");
}










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值