• 01-UIKit


    目录:

    一、视图和控制器

    二、interface Builder

    回到顶部

    一、视图和控制器

    1 视图(view)ios程序运行期间用户所能看见的东西都可以认为是视图,比如UIwindow就是一个视图类。

    * 所有视图类都直接间接的继承UIView

    * 控件是可以和用户交互的视图对象,一般会继承自UIConller类,UIButton、UILable

    2 控制器(contoller)控制视图显示的对象叫控制器,通常叫视图控制器。

    * 所有的视图控制器都是直接或间接继承自UIViewController类

    * 创建自己的控制器,定义一个类,继承自UIViewController

    步骤:

    *1 创建一个控制器MXViewController在MXViewController.m文件中重写viewDidLoad

    - (void)viewDidLoad

    {

        //创建控件

        UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 100, 40)];

        //设置属性

        label.text = @"hello word!!!";

        //加入父视图中

        [self.view addSubview:label];

       

    }

    *2 在MXAppDelegate.m文件中写application:函数具体如下:

    #import "MXViewController.h"

     

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

    {

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

        // Override point for customization after application launch.

        self.window.backgroundColor = [UIColor whiteColor];

        //创建类控件

        MXViewController* myController = [[MXViewController alloc] init];

        //修改window中rootViewController属性

        self.window.rootViewController = myController;

        [self.window makeKeyAndVisible];

        return YES;

    }

     

    *3 button

    - (void)viewDidLoad

    {

        //一定要调用父类的viewDidLoad

        [super viewDidLoad];

       

        //创建控件

        UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 100, 40)];

        UIButton* button = [UIButton buttonWithType:UIButtonTypeSystem];

        //设置属性

        label.text = @"hello world!!!";

        [button setTitle:@"hello" forState:UIControlStateNormal];

        button.frame = CGRectMake(160, 20, 80, 30);//frame设置坐标和宽高

        //button.backgroundColor = [UIColor grayColor];

        //给button添加事件处理 self对象 tap是self对象方法 for...点击各种情况

        [button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside];

        //加入父视图中

        [self.view addSubview:label];

        [self.view addSubview:button];

       

                // Do any additional setup after loading the view.

    }

    -(void)tap{

        NSLog(@"调用了tap方法");

    }

    回到顶部

    二、interface Builder

    1 简称IB,专门用于让开发者构造界面的,是一个可视化的所见即所得的界面设计工具,从xcode4就集成到了xcode中

    2 其本质是一个文本编辑器,设计结果是一个文本文件,以前此文件的扩展名是.nib,所以也叫nib文件,现在这个文本文件扩展名是.xib,

    nib文件:button={"0k",{12,12}};

    xib是xml文件

    nib文件的内容,界面上所有的对象及属性,还要对象与对象之间的关系。

    3 如何使用,程序运行时,如果你的控制器,创建时加载了此nib文件,那么文件中描述的所有对象会被创建,所有属性会被赋值,对象之间的关系会自动维护

    4 如何加载,所有的控制器都会有一个方法:initWithNibName:"nib文件的文件名"

    5 给xib文件中button控件绑定一个方法,选择button控件,按住Ctrl拖拽至方法处,该方法的返回值必须是IBAction(本质void),只是一个连接的一个标记

    6 IBAction

    * .m文件中定义一个私有方法,将来做事情的响应。

    * 从xib文件中连接按钮到方法上(用Ctrl键拖拽连接)

    * 取消连接,从xib文件中找到按钮,第6个检查器中找到连接,将其删除

    7 IBOutlet

    * 在.m文件的扩展中定义属性,属性一定有IBOutlet标记

    * 从xib文件中连接属性(连线)

    * 如果属性是retain(strong)并使用了MRC,需要在dealloc方法中release此属性

    8 IBOutlet 和 IBAction

    IBOutlet连接的是属性,如果需要在程序代码中(controller中),访问这个xib文件中定义的对象时(如lable)就需要连接一个属性到xib

    IBAction连接的是方法,如果需要用户操作了xib文件中定义的控件(如按钮),需要调用方法,那么方法就需要用IBAction连线

    IBAction方法一般是由用户触发的

    练习:界面上有一个按钮,当用户touch了此按钮时,界面上就出现了一个lable,

    作业:

         0. 复习课堂代码

         1. 尝试使用Button的各种事件

         2. 尝试使用UILabel和UIButton的其他属性

             如:font  (字体)

                       textColor  

                       backgroundColor

                       tintColor

         3. 写一个模仿聊天的界面

             界面上有一个按钮,按下此按钮后,界面会出现一个Label

             要求:

                  1)每个Label之间上下间隔10个点,并且和屏幕左右保持10个点的距离

                  2) label高20个点

                  3) 每个label的文字会叠加

                  4) 每个label的背景色是灰色的

                  5) 尝试改变字体(UIFont)

             屏幕宽度是320个点

     

  • 相关阅读:
    hive查询语句合并问题
    hive isnull或ifnull的替代方法if()方法
    hive科学计数法引发的问题
    科学计数法转字符串
    shell命令执行结果$?
    shell脚本中变量接受hive语句的返回值问题
    shell简单命令
    js切换图片
    js点击图片切换
    操作节点
  • 原文地址:https://www.cnblogs.com/yangmx/p/3516282.html
Copyright © 2020-2023  润新知