一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。
本章介绍一下UIView的一些常用属性可方法。它在ios的开发是一个不可缺小的控件,很多的控件开发中都需要继承它。
属性 | 类型 | 说明 |
---|
frame | CGRect | frame的origin是相对于父视图的左上角原点(0,0)的位置 | center | CGPoint | 整个视图的中心点 | bounds | CGRect | view的相对于自身的位置 | hidden | BOOL | 是否隐藏,默认是NO | tag | NSInteger | 为了跟别的View区分 | userInteractionEnabled | BOOL | 是否可以和用户进行交互,默认为YES | backgroundColor | UIColor | 设置背景色 | clipsToBounds | BOOL | 子视图超出父视图范围是否裁剪子视图,默认是NO | superview | UIView | 当前视图的父视图 |
- UIView的主要方法
方法 | 说明 |
---|
- (void)addSubview:(UIView *) | 添加子视图 | - (void)removeFromSuperview | 从父视图中移除 | - (void)bringSubviewToFront:(UIView *) | 将一个视图的层次设置成最上面 | - (void)sendSubviewToBack:(UIView *) | 将一个视图的层次设置成最下面 | - (void)insertSubview:(UIView *) aboveSubview:(UIView *) | 插入指定视图的下面 | - (void)insertSubview:(UIView *) belowSubview:(UIView *) | 插入指定视图的上面 | - (UIView *)viewWithTag:(NSInteger) | 通过指定的标识值获取视图 |
视图绘制
方法 | 说明 |
---|
- (void)setNeedsDisplay | 让整个视图重绘 | - (void)setNeedsDisplayInRect:(CGRect) | 让视图指定的矩形区域重绘 |
手势识别器
方法 | 说明 |
---|
- (void)addGestureRecognizer:(UIGestureRecognizer *) | 添加手势识别器 | - (void)removeGestureRecognizer:(UIGestureRecognizer *) | 删除手势识别器 |
UIView和CALayer的关系
常用属性 | 类型 | 说明 |
---|
backgroundColor | CGColorRef | 设置背景色 | borderColor | CGColorRef | 设置边框颜色 | borderWidth | CGFloat | 设置边框宽度 | cornerRadius | CGFloat | 设置圆角 | contents | id | 设置图片背景 | masksToBounds | BOOL | 设置超出主图层的部分把它给剪切掉 | shadowColor | CGColorRef | 设置阴影颜色 | shadowOffset | CGSize | 设置阴影偏移度 | shadowOpacity | float | 设置阴影透明度 |
关于阴影的使用
阴影在开发中偶尔都会用到的 ,下面说一个,不难。
主要说一下shadowOffset的使用 x 设置是正数 阴影向右 x 设置是负数 阴影向左 y 设置是正数 阴影向下 y 设置是负数 阴影向上
shadowOpacity是设置阴影的透明度 0.0 - 1.0 之间
UIView *views_0 = [UIView new];
[self.view addSubview:views_0];
views_0.backgroundColor = [UIColor blackColor];
views_0.frame = CGRectMake(50, 150, 100, 100);
views_0.layer.shadowColor = [UIColor blueColor].CGColor;
views_0.layer.shadowOffset = CGSizeMake(4, 4);
views_0.layer.shadowOpacity = 1;
下面的设置四周阴影,宽100+8是因为view的宽度是100,高100+12是因为view的高度是100
UIView *views_1 = [UIView new];
[self.view addSubview:views_1];
views_1.backgroundColor = [UIColor blackColor];
views_1.frame = CGRectMake(50, 350, 100, 100);
views_1.layer.shadowColor = [UIColor blueColor].CGColor;
UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(-4, -4, 100 + 8, 100 + 12)];
views_1.layer.shadowOpacity = 2;
views_1.layer.shadowPath = path.CGPath;
|