iOS开发-UIKit控件之UIView(视图)

iOS开发--UIKit控件之UIView(视图)

(注:本文只是本人记录平时需要用到的一些东西,作为备忘)

UIView是iOS开发中最常见、常用的一个控件。它是UIKit框架中封装好的一个控件,功能强大,实用!

UIView继承自UIResponder,使用UIView需要导入主头文件 <UIKit/UIKit.h> 一般我们新建工程,新建视图等X-code都会默认帮助我们导入这个头文件。

创建UIView

 1 // 创建UIView
 2     UIView *view = [[UIView alloc] init];
 3     // 设置坐标和尺寸
 4     /**
 5      *  CGRect
 6      *   1. X       : X轴坐标值
 7      *   2. Y       : Y轴坐标值
 8      *   3. Width   : 宽度
 9      *   4. height  : 高度
10      */
11     [view setFrame:CGRectMake(110, 234, 100, 100)];
12     // 也可以简写为
13     view.frame = CGRectMake(110, 234, 100, 100);
14     // 这一步合并了上两步的代码(创建View并设置了Frame)
15     UIView *view = [[UIView alloc] initWithFrame:CGRectMake(110, 234, 100, 100)];
16     // 将这个View添加到界面上,这样我们才能看得见它
17     [self.view addSubview:view];
18     // 然而我们现在还看不见它,因为它默认是白色的,而我们的界面默认也是白色的
19     // 我们需要修改其中一个的颜色,才看得见
20     // 设置View的背景色 lightGrayColor(亮灰色)
21     [view setBackgroundColor:[UIColor lightGrayColor]];

运行程序,效果如下:

iOS开发-UIKit控件之UIView(视图)

属性

现在能看见视图了,接下来来设置属性(其实Frame和BackgroundColor也是View的属性)

 

 1 // 坐标位置
 2 struct CGPoint {  
 3   CGFloat x;  
 4   CGFloat y;  
 5 };  
 6 typedef struct CGPoint CGPoint;  
 7   
 8 // 尺寸大小
 9   
10 struct CGSize {  
11   CGFloat width;  
12   CGFloat height;  
13 };  
14 typedef struct CGSize CGSize;  
15   
16 // 区域范围(包括坐标、尺寸)
17 struct CGRect {  
18   CGPoint origin;  
19   CGSize size;  
20 };  
21 typedef struct CGRect CGRect;  
22   
23   
24   
25 CGRect rect = CGRectMake(0,0,320,480);  
26 UIView *view = [[UIView allow]initWithFrame:rect];  
27   
28 // 将String转成CGPoint 如 @”{3.0,2.5}”    {x,y}  
29 CGPoint CGPointFromString (  
30    NSString *string  
31 );  
32   
33 // 将String转成CGRect  @”{{3,2},{4,5}}”  {{x,y},{w, h}}  
34 CGRect CGRectFromString (  
35    NSString *string  
36 );  
37   
38 // 将String转成CGSize @”{3.0,2.5}” {w, h}  
39 CGSize CGSizeFromString (  
40    NSString *string  
41 );  
42   
43 // CGPoint转成NSString  
44 NSString * NSStringFromCGPoint (  
45    CGPoint point  
46 );  
47   
48 // CGRect转成NSString  
49 NSString * NSStringFromCGRect (  
50    CGRect rect  
51 );  
52   
53 // CGSize转成NSString  
54 NSString * NSStringFromCGSize (  
55    CGSize size  
56 );  
57   
58 // 对一个CGRect进行修改 以这个的中心来修改 正数表示更小(缩小) 负数表示更大(放大)  
59 CGRect CGRectInset (  
60    CGRect rect,  
61    CGFloat dx,  
62    CGFloat dy  
63 );  
64   
65 // 判断两个矩形是否相交  
66 bool CGRectIntersectsRect (  
67    CGRect rect1,  
68    CGRect rect2  
69 );  
70   
71 // 初始为0的  
72 const CGPoint CGPointZero;  
73 const CGRect CGRectZero;  
74 const CGSize CGSizeZero;  
75   
76 // 创建CGPoint  
77 CGPoint CGPointMake (  
78    CGFloat x,  
79    CGFloat y  
80 );  
81 // 创建CGRect  
82 CGRect CGRectMake (  
83    CGFloat x,  
84    CGFloat y,  
85    CGFloat width,  
86    CGFloat height  
87 );  
88 // 创建CGSize  
89 CGSize CGSizeMake (  
90    CGFloat width,  
91    CGFloat height  
92 ); 

 

 

 

(这里只是列出了一部分,暂时只能想到这些,后续有在用到会再更新)

 

 1 // 属性
 2     //  设置tag值
 3     view.tag = 0;
 4     //  设置中心点
 5     view.center = CGPointMake(160, 284);
 6     //  设置显示/隐藏(NO为显示, YES为隐藏)
 7     view.hidden = NO;
 8     //  设置圆角(cornerRadius : 圆角半径)
 9     view.layer.cornerRadius = 10.0f;
10     //  设置剪切超出的部分
11     view.layer.masksToBounds = YES;
12     //  设置边框宽度
13     view.layer.borderWidth = 1.0f;
14     //  设置边框颜色(purpleColor为紫色)
15     //   borderColor : 只接受C语言的颜色,所以我们需要给他转成CGColor
16     view.layer.borderColor = [UIColor purpleColor].CGColor;

 

运行效果图:

iOS开发-UIKit控件之UIView(视图)

方法

 其实,我们之前用的addSubview就是View的一个方法(作用是加一个视图到另一个视图上)

 1 // 将一个视图移到前面  
 2 [UIView bringSubviewToFront: ];   
 3 // 将一个视图推送到背后  
 4 [UIView sendSubviewToBack: ]  
 5 // 把视图移除  
 6 [UIView removeFromSuperview]  
 7 // 插入视图 并指定索引  
 8 [UIView insertSubview: atIndex: ]  
 9 // 插入视图在某个视图之上  
10 [UIView insertSubview: aboveSubview: ]  
11 // 插入视图在某个视图之下  
12 [UIView insertSubview: belowSubview: ] 
13 // 交换两个位置索引的视图  
14 [UIView exchangeSubviewAtIndex: withSubviewAtIndex: ]

 

动画

其实,动画也是View的方法之一,只是这个功能比较常用,实用,所以我单独开了一个。

动画代码会在动画时长内执行,

比如平移,我们直接设置Frame,会看到它一闪就过去了,但是在动画方法内,可以看见它慢慢的移过去,这个移动时间就是我们的动画时长

1 // 动画
2     //  Duration : 动画时长
3     //  animations : 动画效果代码
4     [UIView animateWithDuration:0.3f animations:^{
5         // 动画代码
6     }];