UIView、UIViewLayout UI_01

1、首先:在UI里面我们使用的是MRC,需要把ARC改成NO;

若学习比较吃力,可以先学习一下基础:

http://blog.sina.com.cn/s/blog_814ecfa90102vuzg.html

则需要修改AppDelegate.h

#import

@interface

AppDelegate :
UIResponder
<</span>UIApplicationDelegate>

@property
(retain,

nonatomic)

UIWindow *window;

//将strong改成retain

@end

同时AppDelegate.m中要写dealloc

- (void)dealloc

{

   
[_window

release];———》可以写成self.window = nil;
//省掉释放和指向nil两步

   
[super

dealloc];

}

2、 当应用程序加载完成的时候触发,此时如果你想让应用程序在加载的时候显示内容,就在该方法中写入要显示的内容

- (BOOL)application:(UIApplication

*)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];

 4、想查看屏幕大小不需要记忆,可以获取屏幕大小后打印即可,想查看不同的大小屏幕大小,只需要更改设备名称

 
  
 
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;

}

==============================================

5、#pragma mark -
 //#pragma mark
-后面加一个-,表示在分组的基础上又进行了分块。

6、
UIView 的重量级属性:frame center bounds

frame:包含(origin左上角的坐标以及size矩形区域的大小),主要用来控制一个视图的位置和大小,其中位置相对于父视图原点坐标的x,y轴上的距离

   
   

//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];
   

 10、
 调整视图关系的方法1

//insertSubview :A 
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];

        

  11、 

//调整视图关系的方法2
    1、//bringSubviewToFront:A 
. 将A调整到所有子视图的最前面

   
[self.window
bringSubviewToFront:redView];

 
     
     

 
     
     
  

    2、//sendSubviewToBack:A
  . 将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;

}

#pragma mark 实现选择器中方法
-
(void)printHelloword{

   NSLog(@"你好");

————————————————————————————

经典霓虹灯的制作:

分析:

15*(1 + 0)  
   15*(1 + 0)
 290- 15*2*0    
 538- 15*2*0

15*(1 + 1)  
   15*(1 + 1)
 290- 15*2*1    
 538- 15*2*1

15*(1 + 2)  
   15*(1 + 2)
 290- 15*2*2    
 538- 15*2*2

15*(1 + 3)  
   15*(1 + 3)
 290- 15*2*3    
 538- 15*2*3

15*(1 + 4)  
   15*(1 + 4)
 290- 15*2*4    
 538- 15*2*4

15*(i+1)  
     
   15*(i+1)  
 
  290 - i*15*2  
  538 - i*15*2)

#define kColorValue arc4random_uniform(255)/255.0

#import

"AppDelegate.h"

@interface
AppDelegate
()

@end

@implementation
AppDelegate
- (void)dealloc

{
   
self.window
=
nil;

   
[super
dealloc];

}

- (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];

   
[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;  

}

—————————————————————————————————————————————

欢迎学习本文,未经博主同意禁止转载!

}

时间: 2024-10-03 20:16:31

UIView、UIViewLayout&amp;nbsp;UI_01的相关文章

iOS学习目录

IOS开发学习索引目录:http://blog.sina.com.cn/s/blog_814ecfa90102vwlu.html ---------------每走一步------------------------- ---------------就是进步------------------------- ================整理UI总结:==================== 控件的基本使用 : http://blog.sina.com.cn/s/blog_814ecfa901

IOS代码笔记UIView的placeholder的效果_IOS

本文实例为大家分享了IOS占位符效果,供大家参考,具体内容如下 一.效果图   二.工程图   三.代码RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController <UITextViewDelegate> { UITextView *psTextView; UILabel *pslabel; } @end RootViewController.m #imp

iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事件:通过触摸.手势进行触发(例如手指点击.缩放) 运动事件:通过加速器进行触发(例如手机晃动) 远程控制事件:通过其他远程设备触发(例如耳机控制按钮) 下图是苹果官方对于

iOS - UIView

前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem, UITraitEnvironment, UICoordinateSpace, UIFocusEnvironment> @available(iOS 2.0, *) public class UIView : UIResponder, NSCodi

IOS开发网站汇总

十分钟让你明白Objective-C的语法(和Java.C++的对比) http://blog.csdn.net/totogo2010/article/details/7632384 iOS学习之sqlite的创建数据库,表,插入查看数据 http://blog.csdn.net/totogo2010/article/details/7702207 iOS SQLite3初试用 http://mobile.51cto.com/iphone-321932.htm ios简单使用sqlite3 ht

ios编程:iPhone How-to:播放gif动画

iPhone SDK提供了多种动画手段,UIView.UIImageView和CALayer都支持动画.但如何处理常见的gif动画呢?UIWebView提供了答案,代码如下: // 设定位置和大小 CGRect frame = CGRectMake(50,50,0,0); frame.size = [UIImage imageNamed:@"anim.gif"].size; // 读取gif图片数据 NSData *gif = [NSData dataWithContentsOfFil

iOS开发之触摸事件_IOS

一.事件分发处理[由外到内] 在iOS中发生触摸后,事件会加到UIApplication事件队列,UIApplication会从事件队列取出最前面的事件进行分发处理,通常会先分发给主窗口,主窗口会调用hitTest:withEvent:方法,查找适合的事件触发视图,即 找到被触摸的视图对象 寻找流程如下: 在顶级视图(keyWindow的视图)上调用pointInside:withEvent:方法判断触摸点是否在当前视图内: 如果返回NO,那么keyWindow的hitTest:withEven

iOS开发之控制器创建与加载(生命周期)

1.如何创建一个控制器 控制器常见的创建方式有以下几种: (1)通过storyboard创建 (2)直接创建 MJViewController *mj = [[MJViewController alloc] init]; (3)指定xib文件来创建 MJViewController *mj = [[MJViewController alloc] initWithNibName: @"MJViewController" bundle:nil]; 注意,创建xid后还要设置xid中哪个vi

UISearchBar和UISearchDisplayController

原文 http://hi.baidu.com/happywilma0118/item/e6d5730a499bba1b3a53eef8  UISearchBar继承自UIView.UIResponder.NSObject   属性: autocapitalizationType----自动对输入文本对象进行大小写设置(包含4种类型,但是有时候键盘会屏蔽此属性)  autocorrectionType----自动对输入文本对象进行纠错.  backgroundImage----searchbar的