UI第一课

本文详细介绍了iOS开发中UI的基本概念、UIWindow的作用与创建、UIView的使用方法及其重要属性,同时还深入探讨了UILabel的创建步骤与文本显示的控制。

主要内容:UIView及其子类、UILable

一、UI概述

       UI(User  Interface):用户界面,用户能看到的各式各样的页面元素

       iOS  APP:各种各样的UI控件 + 业务逻辑和算法

       UI外观改革:

              iOS7.0以前,以虚拟化为主,注重立体、阴影的搭配

              iOS7.0以后,以线条为主,倾向于扁平化

二、UIWindow

       window是窗口,每个APP都需要借助window呈现给用户,

       iOS中,使用UIWindow类表示窗口(注意:通常一个应用程序只创建一个UIWindow对象,并且,我们不会对window做过多的操作

       window的创建:

              在创建window的时候,需要指定window的大小,通常window的大小(frame)与屏幕(UIScreen)的大小一致

              代码示例:

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

      window的主要作用是呈现给用户看,那么如果不添加任何东西,怎么给用户看?所以

三、UIView

       View(视图):代表屏幕上的一个矩形区域,iOS中用UIView表示视图

              注意:1、不同的控件代表不同种类的View

                         2、iOS中所能看到的内容都是View或者其子类

       创建View步骤:

              1、开辟控件并初始化视图(初始化时给出视图位置和大小)

              2、对视图做一些操作(比如北京颜色。。。)

              3、将视图添加到window上进行显示

              4、释放视图对象

       代码示例:

              / / 创建视图对象并给出位置大小

              UIView  *view1 = [[UIView  alloc]  initWithFrame:CGRectMake(100, 100, 100, 100)];

              / / 设置背景颜色为红色

              view1.backgroundColor = [UIColor  redColor];

              / / 将视图view1添加到window窗体上

              [self.window  addSubView :view1] ;

              / / 释放视图对象

              [view1 release] ;

       注意:因为我们一般不对window做过多的操作,所以我们一般都是首先申请一个与屏幕大小相同的view,将所以的控件都添加到view上,在view上进行操作

       frame:

              是view的重要属性,是我们做视图布局的关键,它决定了视图的位置和大小

              frame是一个结构体,包含两个部分内容:origin和size

              origin也是一个结构体,包含两个部分内容:x 和 y

              size也是一个结构体,包含两个部分内容:width 和 height

              CGRectMake()函数能帮助我们快速的构造一个CGRect变量

       center:

              center(中心点)同样也是view的重要属性,center包含两个部分:x 和 y

       frame和center的关系:

              center.x = frame.origin.x + frame.size.width/2

              center.y = frame.origin.y + frame.size.height/2

       bounds:

              bounds(边界)也是view的重要属性,用于定义自己的边界也是一个CGRect结构体变量

              注意:

                     1、当一个view设置bound时,会把自己当成一个容器,定义自己的边界大小及左上角的初始坐标

                     2、当子视图添加到此视图时,会根据bounds指定的原点(0,0)计算frame,而非左上角

      frame、center、bounds的关系







       添加视图:

              系统默认添加视图是后面的视图会把已添加的视图盖在下面,系统提供了插入视图的方法

方法名描述示例
insertSubView:atIndex在指定的Index处插入子视图[superview  insertSubView:grayView  atIndex:3];
insertSubView:aboveSubView:在指定的视图上面添加子视图[superview  insertSubView:grayView  aboveSubView:redView];
inserSubView:belowSubView:在指定的视图下面添加子视图[superview  insertSubView:grayView  belowSubView:redView];


       及管理视图层次的方法:

方法名描述示例
bringSubViewToFront:将指定的视图移到最前面[superview  bringSubViewToFront:redView];
sendSubViewToBack:将指定的视图移到最后面[superview  sendSubViewToBack:garyView];
exchangeSubViewAtIndex: withSubViewAtIndex:交换两个指定索引位置的视图[superview  exchangeSubViewAtIndex:2 withSubViewAtIndex:3];
removeFromSuperview把receiver从父视图上移除[redView  removeFromSuperview];


       视图的重要属性:

属性名描述示例
hidden控制视图的显隐redView.hedden = YES;/ / 隐藏redView

redView.hedden = NO; / / 显示redView
alpha控制视图的不透明度(子视图也一起透明),取值范围0 - 1redView.alpha = o.8; / / 将透明度设置为0.8
superview获取本视图的父视图UIView  *superview = [redView  superView];
subviews获取本视图的所有子视图NSArray  *subview = [redView  subViews];
tag给视图添加标记,被加完标记的视图可以使用viewWithTag:方法取出redView.tag = 100;
UIView  *view = [superview  viewWithTag:100];

       如何确定视图在屏幕的位置呢?

       iOS平面坐标系:

             左上角为坐标系的原点

             水平向右:为x的正方向,屏幕从最左到最右可划分为320等份

             水平向下:为y的正方向,屏幕从嘴上到最下课划分为568等份(5s的屏幕)

             注意:坐标系不是以像素为划分依据,而是以点为划分依据

四、UILable

       UILable(标签):是显示文本的控件(在APP中,UILable是出现频率最高的控件)

       UILable是UIView的子类,作为子类,一般是为了扩充父类的的功能,所有UILable扩展的文字显示的功能

       UILable是能显示文字的视图

       创建UILable的步骤:

              1、开辟空间并初始化(如果本类有自己的方法,用自己的,否则用父类的)

              2、设置文本控制相关的属性

              3、添加到父视图上,用以显示

              4、释放

             代码示例:

                   UILable  *lable = [[UILable  alloc]  initWithFrame:CGRectMake:(100, 100, 100, 100)];

                   lable.backgroundColor = [UIColor  redColor];

                   lable.text = @" 用户名 " ;

                   [self.window  addSubView:able];

                   [able  release];

        控制文本显示的方法:

属性名描述示例
text要显示的文本内容lable.text = @" 用户名 " ;
textColor文本内容的颜色lable.textColor = [UIColor  redColor];
textAlignment文本的对齐方式(水平方向)lable.textAlignment = NSTextAlignmentLeft; / / 左对齐

NSTextAlignmentCenter / / 居中对齐

NSTextAlignmentRight / / 右对齐 
font文本字体lable.font = [UIFont  fontWithName:@" Helvetica-Bold " size:20] ; / / 黑体加粗,20号字
numberOfLines行数lable.numberOfLines = 3; / / 显示3行,注意:Lable的高度要能容纳3行,
如果3行不能显示全部信息,以省略号代替
lineBreakMode断行模式lable.lineBreakMode = NSLineBreakByWordWrapping; / / 以单词为单位换行
shadowColor阴影颜色lable.shadowColor = [UIColor redColor]; / / 红色阴影
shadowOffset阴影大小lable.shadowOffset = CGSizeMake(2, 1);
/ / 阴影向x正方向偏移2,向y正方向偏移1


### Godot 引擎入门与实战教程 Godot 是一款开源的游戏开发引擎,支持 2D 和 3D 游戏制作。它以其轻量级的设计、直观的界面以及强大的脚本功能而闻名。以下是关于 Godot 实战教程的第一课入门内容。 #### 1. 安装与环境搭建 在开始学习之前,需要下载并安装 Godot 引擎。可以从其官方网站获取最新版本[^3]。 - 访问官网:https://godotengine.org/ - 下载适用于操作系统的稳定版本(Stable Release)。 完成安装后,启动 Godot 编辑器即可进入开发环境。 #### 2. 创建第一个项目 打开 Godot 后,在欢迎界面点击 **"New Project"** 来创建一个新的项目文件夹。设置好项目的名称和存储路径后,选择一个默认模板(如 Empty 或 2D),然后单击 **"Create & Edit"** 进入编辑模式[^4]。 #### 3. 场景与节点基础 Godot 的核心概念之一是场景(Scene)和节点(Node)。每个游戏对象都由节点构成,这些节点可以组合成复杂的结构来表示角色、UI 元素或其他交互组件。 - 右键点击 Scene Tree 面板中的空白区域,选择 Add Child Node 添加新节点。 - 常见的初始节点类型包括 `Node2D`、`Sprite` 和 `Camera2D` 等[^5]。 #### 4. 脚本编写 Godot 使用 GDScript 作为主要编程语言,这是一种类似于 Python 的简单语法的语言。要为某个节点添加行为逻辑: - 在 Scene Tree 中选中目标节点,右键菜单选择 Attach Script。 - 设置脚本语言为 GDScript 并保存到合适位置。 - 打开脚本编辑窗口,输入如下代码实现基本移动功能: ```gdscript extends Node2D func _ready(): pass # 初始化函数 func _process(delta): position.x += 10 * delta # 每帧向右平移一定距离 ``` 此代码片段展示了如何利用 `_process()` 方法更新每帧的状态变化[^6]。 #### 5. 测试运行 按下 F5 键或者工具栏上的 Play 按钮可预览当前场景效果。观察屏幕内的物体是否按照预期运动轨迹展示出来。 --- ### 总结 以上就是 Godot 引擎入门教学的一部分概览。通过实际动手练习上述步骤能够快速熟悉该引擎的操作流程及其独特的工作方式。随着进一步深入探索更多高级特性和插件扩展,相信你会逐渐掌握这个强大又灵活的创作平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值