UIView 实例方法 Instance Methods(转)

好了,我接着上篇,开始我们的对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中

以上即是UIView 类的实例方法,比较多,我按照文档把它分为了几类。

到此为止这个类差不多已经了解了大概,正如我所期望的那样,要知道
这个类中都有什么东西,以后不至于走很多弯路。

时间: 2024-12-26 21:58:51

UIView 实例方法 Instance Methods(转)的相关文章

Swift Programming Language ——实例方法(Instance Methods)和类型方法(Type Methods)

方法是与某些特定类型相关联的函数.类.结构体.枚举都可以定义实例方法:实例方法为给定类型的实例封装了具体的任务与功能.类.结构体.枚举也可以定义类型方法:类型方法与类型本身相关联.类型方法与 Objective-C 中的类方法(class methods)相似. 结构体和枚举能够定义方法是 Swift 与 C/Objective-C 的主要区别之一.在 Objective-C 中,类是唯一能定义方法的类型.但在 Swift 中,你不仅能选择是否要定义一个类/结构体/枚举,还能灵活的在你创建的类型

Instance Methods are Curried Functions in Swift

An instance method in Swift is just a type method that takes the instance as an argument and returns a function which will then be applied to the instance. I recently learned about a Swift feature that blew my mind a little. Instance methods are just

Android JNI 学习(八):JNI 接口整理 — Calling Instance Methods Api

一.GetMethodID jmethodIDGetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig); 返回类或接口实例(非静态)方法的方法 ID.方法可在某个 clazz 的超类中定义,也可从 clazz继承.该方法由其名称和签名决定. GetMethodID() 可使未初始化的类初始化. 要获得构造函数的方法 ID,应将 <init> 作为方法名,同时将 void (V) 作为返回类型. 参数: e

2.11 方法(Methods)

方法(Methods) 本页包含内容: 实例方法(Instance Methods) 类型方法(Type Methods) 方法是与某些特定类型相关联的函数.类.结构体.枚举都可以定义实例方法:实例方法为给定类型的实例封装了具体的任务与功能.类.结构体.枚举也可以定义类型方法:类型方法与类型本身相关联.类型方法与 Objective-C 中的类方法(class methods)相似. 结构体和枚举能够定义方法是 Swift 与 C/Objective-C 的主要区别之一.在 Objective-

进击的雨燕---------------方法

方法是与某些特定类型相关联的函数.类.结构体.枚举都可以定义实例方法:实例方法为给定类型的实例封装了具体的任务与功能.类.结构体.枚举也可以定义类型方法:类型方法与类型本身相关联.类型方法与 Objective-C 中的类方法(class methods)相似. 结构体和枚举能够定义方法是 Swift 与 C/Objective-C 的主要区别之一.在 Objective-C 中,类是唯一能定义方法的类型.但在 Swift 中,你不仅能选择是否要定义一个类/结构体/枚举,还能灵活地在你创建的类型

第十三章.方法

来源 方法分为两种: 实例方法(Instance Methods) 类型方法(Type Methods) 方法基本和函数一样 实例方法(Instance Methods) 定义一个实例方法: class Counter { var count = 0 func increment() { count++ } func incrementBy(amount: Int) { count += amount } func reset() { count = 0 } } 调用方法: let counte

python——从datetime模块探索python的数据架构

问题出现于我试图向自建网页中加入实时时间开始. 我之前已经知道python中有有关事件和日期的模块datetime.以下导入datetime并作实验. >>> import datetime>>> type(datetime) <class 'module'> 可知datetime属于module(模块)类.此外,类似的时间相关模块还有time和calendar. There are two kinds of date and time objects: “

Swift3.0P1 语法指南——方法

原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html#//apple_ref/doc/uid/TP40014097-CH15-ID234 1.方法 方法是和特定类型关联的函数.类.结构体和枚举都能定义实例方法(instance methods),也能定义类型方法( type methods). 2.实例

Swift学习笔记(14)--方法

1.分类 方法分为实例方法和类型方法 实例方法(Instance Methods):与java中的类似,略 类型方法(Type Methods):与java.oc中的类方法类似.声明类的类型方法,在方法的func关键字之前加上关键字class:声明结构体和枚举的类型方法,在方法的func关键字之前加上关键字static. 方法的参数名参见学习笔记的函数章节 2.在实例方法中修改值类型和self 结构体和枚举是值类型.一般情况下,值类型的属性不能在它的实例方法中被修改. 但是,如果你确实需要在某个