设为首页 - 加入收藏
广告 1000x90
您的当前位置:神算报 > 凤凰城 > 正文

ios开发之UIView和UIViewController

来源:未知 编辑:admin 时间:2019-07-04

  表示屏幕上的一块矩形区域,负责渲染区域的内容,并且响应该区域内发生的触摸事件。它在 iOS App 中占有绝对重要的地位,因为 iOS 中几乎所有可视化控件都是 UIView 的子类。

  UIView 是按需绘制的,当整个视图或者视图的一部分由于布局变化,变成可见的,系统会要求视图进行绘制。对于那些需要使用 UIKit 或者 CoreGraphics 进行自定义绘制的视图,系统会调用drawRect:方法进行绘制。

  当视图内容发生变化时,需要调用setNeedsDisplay或者setNeedsDisplayInRect:方法,告诉系统该重新绘制这个视图了。调用这个方法之后,系统会在下一个绘制周期更新这个视图的内容。由于系统要等到下一个绘制周期才真正进行绘制,可以一次性对多个视图调用setNeedsDisplay,它们会同时被更新。

  frame 使用的最多,其坐标位置都是相对于父视图的,可以用于确定本视图在父视图中的位置和其自身的大小

  center 的坐标位置也是相对于父视图的,通常用于移动,旋转等动画操作

  bounds 是相对于自身的,通常情况下就是(0,0,width,height), bounds 的含义可以认为是当前 view 被允许绘制的范围

  视图在初次绘制完成后,系统会对绘制结果进行快照,之后尽可能地使用快照,避免重新绘制。如果视图的几何属性发生改变,系统会根据视图的 contentMode 来决定如何改变显示效果。

  可以以动画的形式改变视图的下面这些属性,只需要告诉系统动画开始和结束时的数值,系统会自动处理中间的过渡过程。

  除了提供视图本身的内容之外,一个视图也可以表现得像一个容器。当一个视图包含其他视图时,两个视图之间就创建了一个父子关系。在这个关系中子视图被称为 subView ,父视图被称为 superView 。一个视图可以包含多个子视图,它们被存放在这个视图的subviews数组里。添加,删除,以及操作这些子视图的相对位置的函数如下:

  当一个视图的大小改变时,它的子视图的位置和大小也需要相应地改变。UIView 支持自动布局,也可以手动对子视图进行布局。

  视图的autoresizesSubviews属性决定了在视图大小发生变化时,如何自动调节子视图。

  Constraint 是另一种用于自动布局的方法。本质上,Constraint 就是对 UIView 之间两个属性的一个约束:

  UIView 当中提供了一个layoutSubviews函数,UIView 的子类可以重载这个函数,以实现更加复杂和精细的子 View 布局。

  苹果文档专门强调了,应该只在上面提到的 Autoresizing 和 Constraint 机制不能实现所需要的效果时,才使用layoutSubviews。而且,layoutSubviews 方法只能被系统触发调用,程序员不能手动直接调用该方法。

  那么 layoutSubviews 方法具体调用的时机有哪些呢?具体有下面几种情况:

  通常可以使用addGestureRecognizer:添加手势识别器来响应触控事件,如果需要手动处理,则按需要重载 UIView 中的下面四个函数:

  UIViewController(视图控制器),顾名思义,是 MVC 设计模式中的控制器部分。UIViewController 在 UIKit 中主要功能是用于控制画面的切换,其中的view属性(UIView 类型)管理整个画面的外观。

本文链接:http://drakh.net/fenghuangcheng/772.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top