UIView 属性解析大全(呕心沥血)

autoresizingMask
自动调整子控件与父控件中间的位置,宽高                                 
 UIViewAutoresizingNone就是不自动调整。
UIViewAutoresizingFlexibleLeftMargin 自动调整与superView左边的距离,保证与superView右边的距离不变。
UIViewAutoresizingFlexibleRightMargin 自动调整与superView的右边距离,保证与superView左边的距离不变。
UIViewAutoresizingFlexibleTopMargin 自动调整与superView顶部的距离,保证与superView底部的距离不变。
UIViewAutoresizingFlexibleBottomMargin 自动调整与superView底部的距离,也就是说,与superView顶部的距离不变。
UIViewAutoresizingFlexibleWidth 自动调整自己的宽度,保证与superView左边和右边的距离不变。
UIViewAutoresizingFlexibleHeight 自动调整自己的高度,保证与superView顶部和底部的距离不变。
例:UIViewAutoresizingFlexibleLeftMargin 
 |UIViewAutoresizingFlexibleRightMargin 
自动调整与superView左边的距离,保证与左边的距离和右边的距离和原来距左边和右边的距离的比例不变。
比如原来距离为20,30,调整后的距离应为68,102,即68/20=102/30。
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中
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容