OC_UIView

UIView简介

UIView是一个对屏幕上一个矩形区域内容进行管理的对象。

视图是应用程序用户界面的基本构建块,UIView类定义了所有视图常见的行为。 视图对象在其边界矩形内呈现内容,并处理与该内容的任何交互。

UIView类是一个基础的类,您可以实例化并使用它来显示固定的背景色。您还可以自定义子类以绘制更复杂的内容,以显示在应用程序中常见的标签、图像、按钮和其他接口元素。

视图可以嵌套在其他视图中以创建视图层次结构,这为组织相关内容提供了方便的方式。superview 可以包含任意数量的 subview ,但每个 subview 只有一个 superview 。默认情况下,当子视图的可见区域扩展到其超视界之外时,不会出现子视图内容的剪辑。使用 clipsToBounds 属性来更改该行为。

创建一个UIView

创建 UIView 视图时通常会指定其初始的大小与位置,例如:

CGRect  viewRect = CGRectMake(10, 10, 100, 100);
UIView* myView = [[UIView alloc] initWithFrame:viewRect];
复制代码

首先 CGRect 是一个结构体,里面包含了 CGPoint 类型的 origin ,即原点属性和 CGSize 类型的 size 即尺寸属性。这两个属性同样都是结构体,分别包含了原点的 xy 位置和尺寸的 widthheight 属性,根据这几个属性可以定位一个视图的位置和大小属性。

UIView的常用属性

可动画属性

以下的几个属性属于可动画属性,可以用来创建一个从旧值到新值的动画。

属性类型解释
frameCGRect视图在superview 坐标系中的视图的原点和尺寸
boundsCGRect视图的内部尺寸
centerCGPoint视图的中心点
transformCGAffineTransform视图的各种变化
alphaCGFloat视图的透明度
backgroundColorUIColor视图的背景色

视觉外观属性

属性类型解释
alphaCGFloat视图的透明度
backgroundColorUIColor视图的背景色
hiddenBOOL是否隐藏
opaqueBOOL是否透明
clipsToBoundsBOOL子视图能否超出其边界
layerCALayer核心动画层

事件相关属性

属性类型解释
userInteractionEnabledBOOL是否接收用户事件

边界框架属性

属性类型解释
frameCGRect视图在superview 坐标系中的视图的原点和尺寸
boundsCGRect视图的内部尺寸
centerCGPoint视图的中心点
transformCGAffineTransform视图的各种变化

视图层次属性

属性类型解释
superviewUIView父视图
subviewUIView子视图

其他属性

属性类型解释
tagNSInteger用来识别程序中的视图对象

UIView的常用方法

视图层次管理方法

  • 添加子视图

      - (void)addSubview:(UIView *)view;
    复制代码
  • 将子视图移到最上层

      - (void)bringSubviewToFront:(UIView *)view;
    复制代码
  • 将子视图移到最下层

      - (void)sendSubviewToBack:(UIView *)view;
    复制代码
  • 将自身从父视图删除

      - (void)removeFromSuperview;
    复制代码
  • 在指定索引插入子视图

      - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
    复制代码
  • 在一个子视图上插入另一个子视图

      - (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
    复制代码
  • 在一个子视图下插入另一个子视图

      - (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
    复制代码
  • 将两个子视图交换位置

      - (void)exchangeSubviewAtIndex:(NSInteger)index1  withSubviewAtIndex:(NSInteger)index2;
    复制代码

标识视图方法

  • 通过子视图的 tag 获取子视图

      - (__kindof UIView *)viewWithTag:(NSInteger)tag;
    复制代码

使用Block执行动画

  • 使用指定的持续时间、延迟、选项和完成处理程序动画对一个或多个视图的更改

      + (void) animateWithDuration:(NSTimeInterval) duration animations:(void (^)(void))animations completion:(void(^)) (BOOL finished) completion
    复制代码

UIView的Layer属性

UIViewLayer 属性是 CALayer 类型。 CALayer 是一个管理基于图像的内容的对象,并允许您在该内容上执行动画。

实际上, UIView 的其他属性一般用来负责处理事务,而 layer 用于显示.

CALayer的一些常用属性

设置阴影
属性类型解释
shadowOpacitCGFloat阴影透明度
shadowColorCGColor阴影的颜色
shadowOffsetCGSize阴影的方向和距离
shadowRadiusCGFloat阴影的模糊度
shadowPathCGPathRef阴影的形状
设置圆角和边框
属性类型解释
cornerRadiusCGFloat圆角的半径
borderWidthCGFloat边框的宽度
borderColorCGColor边框的颜色
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值