UIView、UIViewLayout UI_01
@interface
AppDelegate :
UIResponder
<</span>UIApplicationDelegate>
(retain,
nonatomic)
UIWindow *window;
//将strong改成retain
[_window
release];———》可以写成self.window = nil;
//省掉释放和指向nil两步
[super
dealloc];
*)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions {
//创建应用程序的窗口,self.Window
是本应用窗口对象,重要作用将内容呈现给用户
//UIScreen 屏幕类,[UIScreen mainScreen]获取主屏幕,[UIScreen mainScreen]
bounds]获取主屏幕的大小
//UIColor 颜色类
self.window
= [[[UIWindow
alloc]
initWithFrame:[[UIScreen
mainScreen]
bounds]
]autorelease];
//对于屏幕上看到的内容都是UIView及UIView的子类
//UIView代表屏幕上的一块矩形区域
//如果屏幕上绘制出一块矩形区域,需要知道屏幕左上角坐标,即屏幕坐标系原点,还有矩形的宽和高
3、 快速创建出结构体变量分四步:
CGRect (位置,大小)
--------CGRectMake();
CGPoint(点)
--------CGPointMake();
CGSize(大小)
--------CGSizeMake();
//1.创建UIView
对象
UIView
*redView = [[UIView
alloc]initWithFrame:CGRectMake(50,
50,
100,
100)];
//3.修改视图的背景颜色,默认颜色是透明色
[redView
setBackgroundColor:[UIColor
redColor]];
//4.添加到父视图上——即添加在板报上
[self.window
addSubview:redView];
//2.释放所有权
[redView
release];
练习1创建一个绿色视图,添加到self.window上
UIView
*greenView =[[UIView
alloc]initWithFrame:CGRectMake(150,
50,
100,
100)];
[greenView
setBackgroundColor:[UIColor
greenColor]];
[self.window
addSubview:greenView];
[greenView release];
CGRect
newRect = [[UIScreen
mainScreen]
bounds];
//将结构体变量转为字符串对象输出
//NSStringFromCGRect()
//NSStringFromCGPoing()
//NSStringFromCGSize()
NSLog(@"%@",NSStringFromCGRect(newRect));
//建立内部绿色视图
// Override point for customization after application
launch.
//设置self.window.backgroundColor 的背景颜色
self.window.backgroundColor
= [UIColor
cyanColor];
//将self.window 设置为应用的主屏幕并使其可见
[self.window
makeKeyAndVisible];
return
YES;
//#pragma mark
-后面加一个-,表示在分组的基础上又进行了分块。
UIView 的重量级属性:frame center bounds
//center
:中心点,视图的中心点的坐标,相对于父视图坐标原点的位置
//center.x = frame.origin.x + frame.size.width / 2;
//center.y =
frame.origin.y + frame.size.width / 2;
//center 改变,frame也变 ,frame改变,center 也改变
//bounds,
一个视图的边界,CGRect(origin,size),origin是矩形区域所占的相对于自身坐标系的原点位置,size是矩形区域的大小,一个视图创建出来后默认bounds的origin的位置和自身视图的原点是重合的;bounds的(size)大小和frame的(size)大小是一样的;修改一个视图的bounds
的origin(x,y)的时候,视图的frame不变,center也不变;修改一个视图的size,frame变化,center不变;
//修改bounds
的origin的影响的自身原点的坐标位置,也既是影响自身子视图的位置
7、#pragma
mark 修改一个视图的Frame
//redView
UIView
*redView = [[UIView
alloc]initWithFrame:CGRectMake(60,
184,
200,
200)];
//定义一个矩形的结构体变量
//
CGRect rect = CGRectMake(100, 100, 100, 200);
//
redView.frame = rect;
//视图的frame不能被单个修改,只能整体赋值
//
redView.frame.origin.x = 100;
//
CGRect rect1 = redView.frame;
//
rect1.origin.x = 100;
//
rect1.origin.y = 100;
//
redView.frame = rect1;
8、#pragma mark
修改一个视图的senter
//
NSLog(@"%@",NSStringFromCGPoint(redView.center));
//
CGPoint center = CGPointMake(100, 100);
//
redView.center = center;
//
NSLog(@"%@",NSStringFromCGRect(redView.frame));
9、#pragma mark
修改一个视图的bounds
//
redView.bounds = CGRectMake(0, 0, 200, 200);
//
NSLog(@"%@",NSStringFromCGRect(redView.bounds));
redView.backgroundColor
= [UIColor
redColor];
[self.window
addSubview:redView];
[redView
release];
//greenView
UIView
*greenView = [[UIView
alloc]initWithFrame:CGRectMake(110,
234,
100,
100)];
greenView.backgroundColor
= [UIColor
greenColor];
[self.window
addSubview:greenView];
[greenView
release];
//blueView
UIView
*blueView = [[UIView
alloc]initWithFrame:CGRectMake(85,
209,
150,
150)];
blueView.backgroundColor
= [UIColor
blueColor];
[self.window
addSubview:blueView];
[blueView
release];
调整视图关系的方法1
aboveSubview:
B
在B视图上插入A视图
[self.window insertSubview:greenView
aboveSubview:blueView];
//insertSubview:A
belowSubview:B 在B视图下插入A视图
[self.window insertSubview:blueView
belowSubview:greenView];
//insertSubview:A atIndex:下标
将A视图添加到指定位置
[self.window
insertSubview:greenView
atIndex:2];
//或者
[self.window insertSubview:blueView atIndex:1];
//调整视图关系的方法2
1、//bringSubviewToFront:A
. 将A调整到所有子视图的最前面
[self.window
bringSubviewToFront:redView];
. 将A调整到所有子视图的最后面
[self.window
sendSubviewToBack:redView];
//exchangeSubviewAtIndex:下标1
withSubviewAtIndex:下标2,交换两个指定位置的子视图
[self.window
exchangeSubviewAtIndex:1
withSubviewAtIndex:2];
//[A removeFromSuperview ]
A视图从父视图中移除
[blueView removeFromSuperview];
=================================================
总结:
视图的层级关系:
1.最后添加的子视图肯定在所有视图的最前面
2.子视图永远在父视图的前面
3.子视图的添加是有顺序的
4.父视图通过subviews 数组管理所有的子视图
5.如果想调整视图之间的层级关系,需要通过父视图来调整
6.如果想从父视图中移除,使用将要移除的对象来调用方法
=============================================
12、定时器
//第一个参数 设置每过多长时间执行一次定时操作
//第二参数 有谁来执行操作
//第三个参数 选择执行的操作
//第四个参数 用户信息 nil
//第五个参数 是否需要重复定义器操作
[NSTimer
scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(printHelloword)
userInfo:nil
repeats:YES];
//以上程序结束
self.window.backgroundColor
= [UIColor
whiteColor];
[self.window
makeKeyAndVisible];
return
YES;
-
(void)printHelloword{
NSLog(@"你好");
15*(1 + 0)
290- 15*2*0
538- 15*2*0
15*(1 + 1)
290- 15*2*1
538- 15*2*1
15*(1 + 2)
290- 15*2*2
538- 15*2*2
15*(1 + 3)
290- 15*2*3
538- 15*2*3
15*(1 + 4)
290- 15*2*4
538- 15*2*4
15*(i+1)
290 - i*15*2
538 - i*15*2)
"AppDelegate.h"
AppDelegate
()
AppDelegate
- (void)dealloc
{
self.window
=
nil;
[super
dealloc];
*)application
didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions
{
self.window
=
[[UIWindow
alloc]
initWithFrame:[[UIScreen
mainScreen]
bounds]];
//
Override point for customization after application
launch.
self.window.backgroundColor
=
[UIColor
whiteColor];
[self.window
makeKeyAndVisible];
————————————————————————————
for
(int
i
= 0;
i <</span> 10;
i ++) {
UIView
*view
= [[UIView
alloc]initWithFrame:(CGRectMake(15*(i+1),15*(i+1),
290
-
i*15*2,
538
-
i*15*2))];
[self.window
addSubview:view];
view.backgroundColor
=
[UIColor
colorWithRed:kColorValue
green:kColorValue
blue:kColorValue
alpha:1];
view.tag
=
100+i;
[view release];
}
[NSTimer
scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(fromOutToInside)
userInfo:nil
repeats:YES];
return
YES;
(void)fromOutToInside{
UIColor
*temp
= [self.window
viewWithTag:100
+
9].backgroundColor;
for
(int
i
= 100
+
9;
i >= 100;
i--) {
[self.window
viewWithTag:i].backgroundColor
=
[self.window
viewWithTag:i-1].backgroundColor;
}
[self.window
viewWithTag:100].backgroundColor
=
temp;
—————————————————————————————————————————————
UIView、UIViewLayout UI_01的更多相关文章
- [BS-26] UIView、pop和Core Animation区别
UIView.pop和Core Animation区别 一.UIView.pop和Core Animation的主要区别 1. Core Animation的动画只能添加到layer上(layer.p ...
- ios基础篇(二十五)—— Animation动画(UIView、CoreAnimation)
Animation主要分为两类: 1.UIView属性动画 2.CoreAnimation动画 一.UIView属性动画 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIVie ...
- 有关UIView、subview的几个基础知识点-IOS开发 (实例)
环境是xcode4.3 首先要弄懂几个基本的概念. 一)三个结构体:CGPoint.CGSize.CGRect 1. CGPoint /* Points. */ struct CGPoint { C ...
- iOS:UIView、UIControl、UIButton、UILabel简单的属性和方法常识
常见属性和方法 一 .UIVIew 常见属性 1.frame 位置和尺寸(以父控件的左上角为原点(0,0)) 2.center 中点 (以父控件的左上角为原点(0,0)) 3.bounds 位置和尺寸 ...
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事 ...
- 你真的了解UIEvent、UITouch吗?
一:首先查看一下关于UIEvent的定义 //事件类型 typedef NS_ENUM(NSInteger, UIEventType) { UIEventTypeTouches, UIEventTyp ...
- 详解CALayer 和 UIView的区别和联系
详解CALayer 和 UIView的区别和联系 前言 前面发了一篇iOS 面试的文章,在说到 UIView 和 CALayer 的区别和联系的时候,被喵神指出没有切中要点,所以这里就 CALay ...
- iOS-触摸事件、手势识别、摇晃事件、耳机线控
概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件. ...
- iOS - UIView
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppeara ...
随机推荐
- 干货!一次kafka卡顿事故排查过程
由于一次功能上线后,导致某数据量急剧下滑,给我们紧张的呢!排查过程也是个学习过程(这其中有大部分是领导们的功劳,不过分享给大家应该也不犯法吧,ᐓ) 1. 确认问题的真实性? 被数据部门告知,某数据量下 ...
- MySQL 字符串连接CONCAT()函数
MySQL字符串连接函数 使用方法:CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串, ...
- windows系统和centos双系统安装引导项修改
在CentOS下修改Linux引导文件: (1)找到win10的引导 1.首先我们点击第一个系统进入centos 2.运行终端,敲入命令su,为了获取管理员权限,然后终端提 ...
- Docker的名字空间
名字空间是 Linux 内核一个强大的特性.每个容器都有自己单独的名字空间,运行在其中的应用都像是在独立的操作系统中运行一样.名字空间保证了容器之间彼此互不影响. pid 名字空间 不同用户的进程就是 ...
- CodeBlocks使用小技巧
1.基本使用: CodeBlocks使用介绍 2.一定要建项目才能编译运行代码吗? 不一定,也可以直接新建文件,直接运行. 如何管理这些未纳入项目的文件?通过左侧Management面板,切换到Fil ...
- NDK编程的一个坑—Arm平台下的类型转换
最近在做DNN定点化相关的工作,DNN定点化就是把float表示的模型压缩成char表示,虽然会损失精度,但是由于DNN训练的模型值比较接近且范围较小,实际上带来的性能损失非常小.DNN定点化的好处是 ...
- 剑指Offer——如何做好自我介绍
剑指Offer--如何做好自我介绍 前言 自我特点+经历梳理 各位老师好,我叫某某某,XX人.研究生三年级,就读于某某大学信息科学与工程学院软件工程专业.主要使用的开发语言是Java,熟悉基本数据 ...
- 熟悉Python的各种基础小算法
网上有一个Python100小例子的栏目,里面代码良莠不齐,于是下面就自己实现了其中的一些案例. 01.py # coding:utf-8 import sys reload(sys) sys.set ...
- Scheme call/cc 研究
目前尚不清楚实质,但已经能够从形式上理解它的某些好处,有个很简单的连乘函数可以说明: 为了展示究竟发生了什么,我包装了下乘法函数,将其变为mul. 我们将比较product和xproduct的区别. ...
- 自制Linux重命名命令
相比于Windows上的ren命名,Linux还真的是没有一个特定的重命名的命令.(虽然可以间接的使用mv来实现).下面我就来自己写一个简单的重命名命令. 准备工作 操作系统: Linux内核的系统都 ...