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 ...
随机推荐
- JQuery写的一个常见的banner
大致的布局如下: <div class="banner" > <div class="pic"> ...
- PHP XML 函数
PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证. XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XML 教程 中找到更多有关 XML 的 ...
- Nginx之(四)工作原理
众所周知,nginx性能高,而nginx的高性能与其架构是分不开的 4.1 进程模型 Nginx在启动后,会有一个master进程和多个worker进程.master进程主要用来管理worker进程, ...
- Dynamics CRM 部署NLB后使用群集名称访问弹验证框验证不过的解决方法
自上次部署NLB到现在已有段时间了,今天部署完后遇到了个问题,上次也遇到过但忘记了,本篇作为对该问题的一个记录,部署文档:https://blogs.msdn.microsoft.com/niran_ ...
- 剑指Offer——Java实现栈和队列的互模拟操作
剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列 题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型. 思路:其实就是把队列正常入 ...
- Android音频处理——通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能
Android音频处理--通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能 音频这方面很博大精深,我这里肯定讲不了什么高级的东西,最多也只是一些基础类知识,首先,我们要介绍一下 ...
- 一个环形公路,上面有N个站点,A1, ..., AN,其中Ai和Ai+1之间的距离为Di,AN和A1之间的距离为D0。 高效的求第i和第j个站点之间的距离,空间复杂度不超过O(N)。
//点数 #define N 10 //点间距 int D[N]; //A1到每个Ai的距离 int A1ToX[N]; void preprocess() { srand(time(0)); //随 ...
- Python动态展现之一
首先: def f(): print('first') def g(): f() g() def f(): print('second') g() 结果: >>> first sec ...
- 乐观的并发策略——基于CAS的自旋
悲观者与乐观者的做事方式完全不一样,悲观者的人生观是一件事情我必须要百分之百完全控制才会去做,否则就认为这件事情一定会出问题:而乐观者的人生观则相反,凡事不管最终结果如何,他都会先尝试去做,大不了最后 ...
- Android全屏截图的方法,返回Bitmap并且保存在SD卡上
Android全屏截图的方法,返回Bitmap并且保存在SD卡上 今天做分享,需求是截图分享,做了也是一个运动类的产品,那好,我们就直接开始做,考虑了一下,因为是全屏的分享,所有很自然而然的想到了Vi ...