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]];
运行程序,效果如下:
属性
现在能看见视图了,接下来来设置属性(其实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;
运行效果图:
方法
其实,我们之前用的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 }];