• iOS 开发~UIWindow


    比如下面例子:

    写出第一个iOS的程序,在界面上显示“Hello World”

    1.如何新建一个工程

    iOS—>Single View Application—>工程名、保存位置

    2.运行App

    点击三角符号或使用快捷键(Command + R)

    快捷键:Command+B 只是编译,不是运行

    3.工程的文件组成

    4.应用程序是如何运行起来的?

    1)main方法

    int main(int argc, char * argv[])

    {

        @autoreleasepool {

            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

        }

    }

    UIApplicationMain()全局函数,一共做了三件事:

    a)根据第三个参数创建应用程序类的实例(nil默认UIApplication 系统默认)

    b)根据第四个参数创建应用程序代理类的实例

          (Application Delegate代理     自己任意创建的类,遵守了协议才可以成为代理类)

    c)启动事件循环

    d)在代理类的didFinishLaunchingWithOptions:方法中编写启动程序后的界面创建及显示

    5.UIWindow

              1)是什么

                  是界面显示的根本对象,要想出现显示的内容,那么一定是先创建window的实例

              2)作用是什么?

                 是界面要显示的内容的父容器,在window的上面添加其他显示的内容

    6.frame

            1)是什么

                  是CGRect类型的结构体

            2)描述了控件在父容器中的位置和大小

    CGRect{

    CGPoint  origin,

    CGSize     size

    }

    CGPoint{

    CGFloat  x,

    CGFloat y

    }

    CGSize{

    CGFloat width,

    CGFloat height

    }

          3)如何创建结构体的变量?

               使用全局函数  xxxMake();

               CGRect  —>  CGRectMake(x,y,width,height)

               CGPoint -> CGPointMake(x,y);

               CGSize  -> CGSizeMake(width,height); 

    例:

    AppDelegate.m

    #import "AppDelegate.h"

    @implementation AppDelegate 

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    {

        //应用程序启动后,第一个要执行动作的时机点,可以做第一个要出现的界面的设置

        //1.创建window的实例   //读屏幕的大小    

       self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

       //2.设置window的背景色

       self.window.backgroundColor=[UIColor yellowColor];

        //3.创建并添加显示文本信息的标签

         UILabel *label = [[UILabel alloc]init];

        label.frame = CGRectMake(100, 150, 200, 40);

        label.text = @"Hello World";

        [self.window addSubview:label];//子试图添加到界面

       // 4 设置根控制器  

       self.window.rootViewController=[ViewController new];                                                                                                 

        // 5.设置窗口可见(显示)

        [self.window makeKeyAndVisible];

        return YES;

    }

    效果如下: 

  • 相关阅读:
    ADPlus
    'telnet' is not recognized as an internal or external command
    图片二进制上传2
    window.opener返回值的用法
    UrlRewriter 重写的问题
    缩略图 水印
    读取二进制图片问题
    正则表达式匹配问题
    .NET读excl数据
    js调用其他页面输出内容
  • 原文地址:https://www.cnblogs.com/yhj1787354782/p/5050205.html
Copyright © 2020-2023  润新知