文章标题

1 篇文章 0 订阅

## 序言 ##
UI的学习笔记, 学学记记有益身心健康


UI编程 第一讲 UIView及其子类

UI概述

UI(user interface) :用户界面, 用户能看到的各种各样的页面元素

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


插曲

iOS发展到现在从最初的的iOS 2.0 到 iOS 7.0 经历了一些变化, 从最初的虚拟化实物, 注重光线 阴影的搭配, 到iOS 7.0 开始的以线条为主, 侧重体现了应用程序的地位.


UIWindow

iOS中, 一个程序通常只创建一个UIWindow, window的作用是将内容呈现给用户, 我们不会对window做太多操作.

创建window

通常window的大小和屏幕等大

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

window有许多属性, 不过基于不对window进行更多操作的原则, 我不在此处一一介绍, 具体可看view的属性.


UIView

view代表屏幕上的一个矩形区域,
不同的控件代表不同的UIView,
iOS中所有能看到的内容都是view或者其子类.

创建UIView的过程:

  1. 开辟空间初始化(初始化时要给出视图的位置和大小 (CGRect))
  2. 对视图进行一些类的设置, (背景颜色, 属性, 外观)
  3. 将视图添加到window中显示 (重要 如果不添加的话, 就不会在屏幕中显示)
  4. 释放视图对象.

注意:

UI中采用的是手动内存管理, 每次创建都要有一个对应的释放, 因此, 创建好工程后, 我们需要做以下四件事.

  1. 将自动内存管理改为手动内存管理.
  2. 重写 AppDelegate中的dealloc方法(添加释放 _window)
    (如果创建其他View类, 也要重写dealloc方法, 释放实例变量)
  3. 创建window时, 添加自动释放.
  4. 将实例变量中的(strong 改为 retain)

例子:

UIView *view = [[UIView alloc] initWithFrame:CGRect(100, 100, 100, 100)];
view.background = [UIColor blueColor];
[self.window addSubView: view];
[view release];

frame

frame是view的重要属性, 他决定了视图的大小和位置.
frame是一个结构体, 包含origin 和size
origin 和 size也是结构体, 分别包含x, y, weight, height.
frame 的origin 和 size 是相对于父视图来说的, 父视图的bounds改变, 子视图的布局也会改变

center是view的重要属性, 中心点

PS: iOS的布局是从从左上角建立坐标系, 水平向右, 水平向下 是正方法.
PS2: iPhone 6 的被划分为 375 677;

bounds

bounds边界也是view 的重要属性, 用于定义自己的边界, 他同frame一样是一个CGRect变量.

当一个view设置bounds时, 会将自己当做一个容器, 定义自己的边界和初始坐标
子视图添加到这个视图中时, 会根据bounds指定的(0, 0)计算frame, 而不是左上角.


添加视图

添加视图的方法

[superview insertSubView: grayView atIndex: 1];//在指定的index位置插入视图
[superview insertSubview: grayView aboveSubview: redView];//在指定的视图上面添加视图
[superview insertSubview: grayView blowSubview:redView];//在指定的视图下面添加视图

管理视图层次
略 自己看API 去.

视图的重要属性

包含不透明度, 获取父视图, 获取所有子视图, 标记视图.

PS:接下来控件的使用, 如无特殊情况, 我都不再写, 如遇问题, 请看API.


UILabel

控制文本显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值