你的位置:首页 > 操作系统

[操作系统]UIView属性


UIView属性


autoresizingMask

自动调整子控件与父控件中间的位置,宽高。

UIViewAutoresizingNone就是不自动调整。

UIViewAutoresizingFlexibleLeftMargin 自动调整与superView左边的距离,保证与superView右边的距离不变。

UIViewAutoresizingFlexibleRightMargin 自动调整与superView的右边距离,保证与superView左边的距离不变。

UIViewAutoresizingFlexibleTopMargin 自动调整与superView顶部的距离,保证与superView底部的距离不变。

UIViewAutoresizingFlexibleBottomMargin 自动调整与superView底部的距离,也就是说,与superView顶部的距离不变。

UIViewAutoresizingFlexibleWidth 自动调整自己的宽度,保证与superView左边和右边的距离不变。

UIViewAutoresizingFlexibleHeight 自动调整自己的高度,保证与superView顶部和底部的距离不变。



autoresizesSubviews

自动尺寸调整autoresizesSubviews属性声明被设置为YES, 则其子视图会根据autoresizingMask属性的值自动进行尺寸调整。 简单配置一下视图的自动尺寸调整掩码常常就能使应用程序得到合适的行为;否则, 应用程序就必须通过重载layoutSubviews方法来提供自己的实现。



sizeThatFits

计算并返回的大小最适合它的子视图的视图。(让视图计算最适合子视图的大小,即能把全部子视图显示出来所需要的最小的size)



sizeToFit

得到最适合当前包含它子视图的尺寸(根据子视图的大小位置,调整视图,使其恰好围绕子视图,也就是说自动适应子视图的大小,只显示子视图)



frame

在父视图位置(参照点是,父view坐标系统)



bounds

该view在本地坐标系统中的位置和大小(参照点是,本地坐标系统)



center

frame中的中心点(决定当前视图是否是处理触摸事件的唯一对象)



小属性

hidden 隐藏视图

alpha 透明度(0~1)

opaque 不透明度 (0~1)

userInteractionEnabled 交互

multipleTouchEnabled 支持多点触控

exclusiveTouch 决定当前视图是否处理出门事件的唯一对象



clearsContextBeforeDrawing

决定在视图重画之前是否先清理视图以前的内容,缺省值为YES 如果你把这个属性设为NO,那么你要保证能在 drawRect:方法中正确的绘画。如果你的代码 已经做了大量优化,那么设为NO可以提高性能,尤其是在滚动时可能只需要重新绘画视图的一部分



clipsToBounds

决定子视图是否被限定在当前视图的bounds中,缺省值为NO



ContentScaleFactor

应用到当前视图的比例Scale



gestureRecognizers

当前视图所附加的手势识别器



layer

用于视图渲染的核心动画层



motionEffects

当前视图的运动效果(当前视图的运动效果,IOS7才开始拥有)



restorationIdentifier

该标示符决定该视图是否支持恢复状态,其实也只是个标示符而已个人觉得就相当于配置表视图每个单元格时使用的标示符一样,可以直接在内存中重用,提高了性能还有一点需注意,不应该简单的定义这个标示符,因为其所属的view controller ,还有view controller的所有 父view controllers都必须有一个恢复标识符



基本

subviews 当前视图的所有子视图

superview 当前视图的父视图

tag 当前视图标签

tintAdjustmentMode 色调调整模式,开始用于iOS7

transform 视图仿射变换

userInteractionEnabled 决定与用户交互事件是否从被忽略并从事件队列中移除

windows 当前视图上的UIWindow



UIViewContentModel

UIViewContentModeScaleToFill, 缩放内容到合适比例大小

UIViewContentModeScaleAspectFit, 缩放内容到合适的大小,边界多余部分透明

UIViewContentModeScaleAspectFill, 缩放内容填充到指定大小,边界多余的部分省略

UIViewContentModeRedraw, 重绘视图边界

UIViewContentModeCenter, 视图保持等比缩放

UIViewContentModeTop, 视图顶部对齐

UIViewContentModeBottom, 视图底部对齐

UIViewContentModeLeft, 视图左侧对齐

UIViewContentModeRight, 视图右侧对齐

UIViewContentModeTopLeft, 视图左上角对齐

UIViewContentModeTopRight, 视图右上角对齐

UIViewContentModeBottomLeft, 视图左下角对齐

UIViewContentModeBottomRight, 视图右下角对齐



编辑结束/开始 视图中的编辑状态(一般用作于收键盘)

(BOOL)endEditing:(BOOL)force



关于响应

-(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 为视图添加一个手势识别器

-(void)removeGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 移除一个手势识别器

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 开始一个手势识别器

-(void)addMotionEffect:(UIMotionEffect *)effect 开始向视图中添加运动效果,这么说其实比较模糊,比如说警告框会随着手机的倾斜而倾斜, 当然这需要代码实现,只是我们现在可以检测手机的运动事件来做出相应的响应—从IOS7开始使用



管理视图层次

-(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 判断接收对象是否是指定视图的子视图,或与指定视图是同一视图



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

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

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



管理约束

-(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 解码一个视图状态信息



转换视图间坐标 (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中