好了,我接着上篇,开始我们的对UIView 实例方法的探索
UIView 实例方法 Instance Methods

初始化一个视图
- (id)initWithFrame:(CGRect)aRect //用指定的frame 初始化一个视图对象

结束视图中的编辑状态
- (BOOL)endEditing:(BOOL)force 
//这个在弹回键盘时特别有用

关于响应
- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
//为视图添加一个手势识别器
- (void)removeGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
//移除一个手势识别器
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
//开始一个手势识别器
- (void)addMotionEffect:(UIMotionEffect *)effect
//开始向视图中添加运动效果,这么说其实比较模糊,比如说警告框会随着手机的倾斜而倾斜,
当然这需要代码实现,只是我们现在可以检测手机的运动事件来做出相应的响应
//从IOS7开始使用

管理视图层次 Managing the View Hierarchy

- (void)addSubview:(UIView *)view //添加子视图
- (void)removeFromSuperview //从父视图中移除

- (void)bringSubviewToFront:(UIView *)view 
//移动指定的子视图到最顶层
- (void)sendSubviewToBack:(UIView *)view
//移动制定的子视图到后方,所有子视图的下面

- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
//在指定的位置插入子视图,视图的所有视图其实组成了一个数组
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview
//将指定的子视图移动到指定siblingSubview子视图的前面
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview
//将指定的子视图移动到指定siblingSubview子视图的后面
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2
//交换两子视图的位置

- (BOOL)isDescendantOfView:(UIView *)view
//判断接收对象是否是指定视图的子视图,或与指定视图是同一视图

配置自动调整大小状态 Configuring the Resizing Behavior
- (void)sizeToFit //根据子视图的大小位置,调整视图,使其恰好围绕子视图,
也就是说自动适应子视图的大小,只显示子视图
- (CGSize)sizeThatFits:(CGSize)size
//让视图计算最适合子视图的大小,即能把全部子视图显示出来所需要的最小的size

铺设子视图 Laying out Subviews

- (void)layoutSubviews //勾画子视图
- (void)layoutIfNeeded //立即勾画子视图
- (void)setNeedsLayout 
//使当前接收对象的布局作废,并在下一更新周期触发一个新的布局

选择加入基于约束的布局 Opting in to Constraint-Based Layout

- (void)setTranslatesAutoresizingMaskIntoConstraints:(BOOL)flag
//设置视图自动调整尺寸的掩码是否转化为基于约束布局的约束
- (BOOL)translatesAutoresizingMaskIntoConstraints
//判断视图是否将自动调整尺寸的掩码是否转化为基于约束布局的约束

管理约束 Managing Constraints

- (NSArray *)constraints //返回由视图创建的约束

- (void)addConstraint:(NSLayoutConstraint *)constraint
//为视图布局或者子视图添加一个约束,constraint约束只能在当前视图范围内,包括子视图
- (void)addConstraints:(NSArray *)constraints
//添加一组约束

- (void)removeConstraint:(NSLayoutConstraint *)constraint
//移除视图上指定的约束
- (void)removeConstraints:(NSArray *)constraints
//移除指定的一组约束

在基于约束布局的测量 Measuring in Constraint-Based Layout

- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize
//返回满足持有约束的视图的size

- (CGSize)intrinsicContentSize
//返回接收对象的原本大小

- (void)invalidateIntrinsicContentSize
//废除视图原本内容的size

- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis
//设置当视图要变小时,视图的压缩改变方式,是水平缩小还是垂直缩小,并返回一个优先权
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis
//设置优先权

- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis
//与上边相反是视图的放大改变方式
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis
//参照上面的方法

校准视图 Aligning Views with Constraint-Based Layout

- (CGRect)alignmentRectForFrame:(CGRect)frame
//返回给定框架的视图的对齐矩阵
- (CGRect)frameForAlignmentRect:(CGRect)alignmentRect
//返回给定对齐矩形的视图的frame
- (UIEdgeInsets)alignmentRectInsets
//返回从视图的frame上定义的对齐矩阵的边框 
- (UIView *)viewForBaselineLayout
//返回满足基线约束条件的视图

触发基于约束的布局 Triggering Constraint-Based Layout

- (BOOL)needsUpdateConstraints //视图的约束是否需要更新
- (void)setNeedsUpdateConstraints //设置视图的约束需要更新

- (void)updateConstraints //为视图更新约束
- (void)updateConstraintsIfNeeded //更新视图和其子视图的约束

调试基于约束的布局 Debugging Constraint-Based Layout

- (NSArray *)constraintsAffectingLayoutForAxis:(UILayoutConstraintAxis)axis
//返回影响一个给定轴视图布局的约束

- (BOOL)hasAmbiguousLayout //视图的位置是否不完全指定

- (void)exerciseAmbiguityInLayout
//在不同的有效值之间用一个模糊的布局随机改变视图的frame

绘画和更新视图 Drawing and Updating the View

- (void)drawRect:(CGRect)rect //在指定的区域绘画视图

- (void)setNeedsDisplay //标记整个视图的边界矩形需要重绘
- (void)setNeedsDisplayInRect:(CGRect)invalidRect
//标记在指定区域内的视图的边界需要重绘

格式化打印视图内容

- (UIViewPrintFormatter *)viewPrintFormatter //返回视图的打印格式化

- (void)drawRect:(CGRect)area forViewPrintFormatter:(UIViewPrintFormatter *)formatter
//指定区域和打印格式绘画视图内容

保存和恢复状态 Preserving and Restoring State

- (void)encodeRestorableStateWithCoder:(NSCoder *)coder
//编码视图的状态信息
- (void)decodeRestorableStateWithCoder:(NSCoder *)coder
//解码一个视图状态信息

标记视图 
- (UIView *)viewWithTag:(NSInteger)tag

转换视图间坐标 Converting Between View Coordinate Systems

- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
//转换一个点从接受对象的坐标系到指定视图
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view
//与上面相反,指定视图坐标中的一个点转换为接收对象

- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view
- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view
//参照上面两个方法

视图中的点击测试

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
//在指定点上点击测试指定事件
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
//测试指定的点是否包含在接收对象中

注意与视图相关联的改变 Observing View-Related Changes

- (void)didAddSubview:(UIView *)subview
//通知视图指定子视图已经添加
- (void)willRemoveSubview:(UIView *)subview
//通知视图将要移除指定的子视图

- (void)willMoveToSuperview:(UIView *)newSuperview
//通知视图将要移动到一个新的父视图中
- (void)didMoveToSuperview
//通知视图已经移动到一个新的父视图中

- (void)willMoveToWindow:(UIWindow *)newWindow
//通知视图将要移动到一个新的window中
- (void)didMoveToWindow
//通知视图已经移动到一个新的window中

转载于:https://www.cnblogs.com/wfwenchao/articles/3831696.html

iOS UIView的一些方法和属性(本博客侧重于视图布局部分的学习)相关推荐

  1. 计算机专业新手博客,本博客的标题不是“当初学者学习编程语言的时候在学什么?”...

    自从村上春树写了<当我谈跑步时我谈些什么>什么之后,"当我们在吃饭的时候我们在吃什么"之类的各种文章出现了很多.村上在谈"我"的时候没什么问题,因为 ...

  2. iOS对UIViewController生命周期和属性方法的解析

    iOS对UIViewController生命周期和属性方法的解析 一.引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有 ...

  3. UIView封装动画--iOS利用系统提供方法来做关键帧动画

    iOS利用系统提供方法来做关键帧动画 ios7以后才有用. /*关键帧动画options:UIViewKeyframeAnimationOptions类型*/[UIView animateKeyfra ...

  4. ViewController类中得方法和属性的用途

    ViewController类中得方法和属性的用途 1. wantsFullScreenLayout 只要在UIViewController上设置wantsFullScreenLayout=true ...

  5. IOS开发UI篇—导航控制器属性和基本使用

    IOS开发UI篇-导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...

  6. ios UIView全部API解读

    /********* UIView是iOS系统界面元素的基础,所有的界面元素都是集成自它.它本身完全是由CoreAnimation来实现的.它真正的绘图部分,是一个叫CALayer(Core Anim ...

  7. IOS UIView详解

    文章目录 IOS UIView详解 1.官方类分析 2. UIView 常用的属性 2.1 UIView的圆角加阴影效果的实现 2.2 UIView 属性 2.2.1 UIView 几何属性 2.2. ...

  8. ios uiview 如何刷新_UIView的重绘及布局刷新

    本文将简要讨论以下几个问题: 1.UIView的drawRect方法的调用机制及注意点 2.UIView的layoutSubviews.layoutIfNeeded.setNeedsLayout等方法 ...

  9. IOS UiView frame哪里来?

    初学ios开发,frame center bounds 一直搞不清楚.最近在看wwdc session 121 UIKit Rendering 找到答案. frame 是计算属性 frame定义是父视 ...

最新文章

  1. linux 线程操作问题undefined reference to ‘pthread_create‘的解决办法(cmake)
  2. wps怎么投递简历发到boss直聘_2020年疫情时期,在厦门的你怎么开启新工作
  3. App设计灵感之十二组精美的租车类App设计案例
  4. Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
  5. android申请权限一次性申请多个,android 6.0以上动态一次申请多个权限-最美解决方案...
  6. FPGA复位激励编写(方法一)
  7. 企业架构研究总结(24)——TOGAF架构开发方法(ADM)之机会及解决方案阶段
  8. python 内存溢出能捕获吗_python之记录一次内存溢出
  9. 2.tcpdump(2)
  10. sql基础教程和mysql基础教程_SQL基础教程第2版 ([日]MICK 著) 中文pdf高清版[22MB]
  11. java guice_java – Guice Inject类中的字段不是由Guice创建的
  12. 深度强化学习——A3C
  13. Python爬虫:爬取酷狗音乐!动不动就给我来个付费音乐!没用的!
  14. 一个TCP FIN_WAIT2状态细节引发的感慨
  15. 修改cnn梯度下降——MEO方法应用
  16. tf_Course6循环神经网络
  17. Logaster让设计logo更简单
  18. SAS卡,RAID卡,HBA卡区别与联系
  19. 欧拉定理,费马小定理证明
  20. Morden Enum 巧用C++结构体封装枚举,实现类型安全和操作封装

热门文章

  1. struts2 不返回result的做法
  2. websocket在.net4.5中实现的简单demo
  3. 记Git报错-refusing to merge unrelated histories
  4. 第一阶段SCRUM冲刺 03
  5. [源码和文档分享]基于VC++控制台实现的图书信息管理系统
  6. linux 防火墙iptables简明教程
  7. 什么才是软件开发的葵花宝典?
  8. mysql 索引语法_MySQL 索引:语法及案例剖析
  9. 拼接图像亮度均匀调整_液晶拼接屏如何才能达到更好的显示效果
  10. hdu4284 dfs+floyd