zoukankan      html  css  js  c++  java
  • IOS学习笔记(五)——UI基础UIWindow、UIView

           在PC中,应用程序多是使用视窗的形式显示内容,手机应用也不例外,手机应用中要在屏幕上显示内容首先要创建一个窗口承载内容,iOS应用中使用UIWindow、UIView来实现内容显示。

    UIWindow:

           UIWindow对象是所有UIView的根视图,管理和协调的应用程序的显示、分发事件给View。UIWindow类是UIView的子类,可以看作是特殊的UIView。一般应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。UIWindow初始化在appDeleDgate里面的 didFinishLaunchingWithOptions方法。

        self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];//显示出UIWindow



    UIView:

           UIView类继承自UIResponder,负责在屏幕上 定义一个矩形区域,视图用于展示界面及响应用户界面交互。每个视图对象都要负责渲染视图区域的内容,并响应该区域中发生的操作事件。

           除了显示内容和处理事件之外,视图可以嵌套并管理子视图。子视图是指嵌入到另一视图对象内部的视图对象,而被嵌入的视图对象是父视图。视图添加到window中就会显示出来,iOS中是怎么实现视图显示的,看下面的代码:

     

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        
        self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        
        
        CGRect rect=[UIScreen mainScreen].applicationFrame;
        
        NSLog(@"NSScreen application %@",NSStringFromCGRect(rect));
        CGRect rect2=[UIScreen mainScreen].bounds;
        
        NSLog(@"NSString mainScreen %@",NSStringFromCGRect(rect2));
    
        NSLog(@"iOS_didFinishLaunchingWithOptions");
        
        UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(60, 50, 200, 100)];
        view1.backgroundColor=[UIColor greenColor];
        
        [self.window addSubview:view1];
        [view1 release];
      
        UIView *view2=[[UIView alloc]initWithFrame:CGRectMake(60, 100, 200, 200) ];
        view2.alpha=0.5;
        view2.backgroundColor=[UIColor cyanColor];
        [self.window addSubview:view2];    
       
        
        UIView *view3=[[UIView alloc]initWithFrame:CGRectMake(100, 50, 60, 50)];
        view3.backgroundColor=[UIColor colorWithRed:25/255.0 green:60/255.0 blue:150/255.0 alpha:1.0];    
        [view2 addSubview:view3];
        
        [view3 release];
        [view2 release];
        
        [self.window makeKeyAndVisible];
        return YES;
    }
    


    上面添加了三个视图,view1、view2、view3,view3嵌套在view2中。

    /**
    * @author 张兴业
    *  iOS入门群:83702688
    *  android开发进阶群:241395671
    *  我的新浪微博:@张兴业TBOW
    */
  • 相关阅读:
    git stash 一个场景 mark
    sendBeacon 使用
    【踩坑笔记】layui之单选和复选框不显示
    wordpress后台管理超时没反应:load-scripts.php载入缓慢出错
    MySQL_Sql_打怪升级_进阶篇_测试: SQL随机生成测试数据
    MySQL_Sql_打怪升级_进阶篇_测试: 游标应用
    MySQL8.0新特性_01_JSON数据格式的支持
    MySQL_Sql_打怪升级_进阶篇_进阶19: 函数
    MySQL_Sql_打怪升级_进阶篇_进阶18: 存储过程
    MySQL_Sql_打怪升级_进阶篇_进阶17: 变量
  • 原文地址:https://www.cnblogs.com/xyzlmn/p/3168056.html
Copyright © 2011-2022 走看看