ios开发 view视图

Initializing a View Object //初始化view

- (id)initWithFrame:(CGRect)aRect //通过一个矩形对象初始化

Configuring a View’s Visual Appearance //配置视觉展示

@property(nonatomic, copy) UIColor *backgroundColor //设置背景色
@property(nonatomic, getter=isHidden) BOOL hidden //隐藏view,默认为NO
@property(nonatomic) CGFloat alpha //设置透明度,0.0至1.0区间
@property(nonatomic, getter=isOpaque) BOOL opaque //告诉系统渲染器view是否不透明,设置YES可以加快渲染,默认为YES,如果设置了alpha值,应该设置为NO
@property(nonatomic) BOOL clipsToBounds //是否裁剪超出边界的视图,与css中overflow类似,默认为NO
@property(nonatomic) BOOL clearsContextBeforeDrawing //是否清除缓冲区中不可见内容,默认为YES,如果在一个滚动操作频繁的视图中,应该设为NO,以避免重新渲染,提升性能
+ (Class)layerClass //可以返回主layer所使用的类,UIView的子类可以通过重载这个方法,来让UIView使用不同的CALayer来显示
@property(nonatomic, readonly, retain) CALayer *layer //返回Core Animation层所使用的渲染方式

Configuring the Event-Related Behavior //配置事件关系

@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled //设置view是否响应用户事件,如touch、keyboard,默认为YES
@property(nonatomic, getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled //设置view是否响应多点触摸,默认为NO
@property(nonatomic, getter=isExclusiveTouch) BOOL exclusiveTouch //设置touch是否排它,默认为NO

Configuring the Bounds and Frame Rectangles //配置边界和矩形框架

@property(nonatomic) CGRect frame //设置view框架
@property(nonatomic) CGRect bounds //设置view边界
@property(nonatomic) CGPoint center //设置中心点
@property(nonatomic) CGAffineTransform transform //设置transform,与css类似,CGAffineTransform是个矩阵结构体

Managing the View Hierarchy //管理视图层级

@property(nonatomic, readonly) UIView *superview //返回父view,只读
@property(nonatomic, readonly, copy) NSArray *subviews //返回子view集合,只读
@property(nonatomic, readonly) UIWindow *window //返回window对象,只读
- (void)addSubview:(UIView *)view //添加一个子view到view中
- (void)bringSubviewToFront:(UIView *)view //把一个子view位置移动到列表最前
- (void)sendSubviewToBack:(UIView *)view //把一个子view位置向后移动一格
- (void)removeFromSuperview //把调用该方法的view从其父view中移除
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index //插入一个子view到指定索引,从0开始
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview //插入一个子view到指定view之前
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview //插入一个子view到指定view之后
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2 //交换两个view的索引
- (BOOL)isDescendantOfView:(UIView *)view //判断是不是指定元素的子节点或是其本身

Configuring the Resizing Behavior //配置尺寸改变行为

@property(nonatomic) UIViewAutoresizing autoresizingMask //当父元素窗口尺寸改变时,子节点如何去自适应变化
@property(nonatomic) BOOL autoresizesSubviews //子view是否自适应变化,默认为YES
@property(nonatomic) UIViewContentMode contentMode //view自适应变化的方式
- (CGSize)sizeThatFits:(CGSize)size //传递view的尺寸,返回建议的子view尺寸
- (void)sizeToFit //调整view的尺寸去适应其内容

Laying out Subviews //布局子节点

- (void)layoutSubviews //布局子view
- (void)setNeedsLayout //在下次更新中刷新布局
- (void)layoutIfNeeded //立即刷新布局

Opting in to Constraint-Based Layout //选择约束布局的方式

+ (BOOL)requiresConstraintBasedLayout //返回view是否是约束布局模式,ios6
- (BOOL)translatesAutoresizingMaskIntoConstraints //返回一个BOOL,判断自动布局是否可为转换约束布局,ios6
- (void)setTranslatesAutoresizingMaskIntoConstraints:(BOOL)flag //设置在约束布局系统中是否把自动布局转换为约束布局,ios6

Managing Constraints //约束管理

- (NSArray *)constraints //返回view的约束句柄,ios6
- (void)addConstraint:(NSLayoutConstraint *)constraint //添加约束句柄,ios6
- (void)addConstraints:(NSArray *)constraints //添加约束句柄数组,ios6
- (void)removeConstraint:(NSLayoutConstraint *)constraint //删除约束句柄,ios6
- (void)removeConstraints:(NSArray *)constraints //删除约束句柄数组,ios6

Measuring in Constraint-Based Layout //测量约束布局

- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize //返回最合适的尺寸,ios6
- (CGSize)intrinsicContentSize //返回view的自然尺寸,ios6
- (void)invalidateIntrinsicContentSize //使内容尺寸无效化,ios6
- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis //待补充,ios6
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis //待补充,ios6
- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis //待补充,ios6
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis //待补充,ios6

Aligning Views with Constraint-Based Layout //校准约束布局

- (CGRect)alignmentRectForFrame:(CGRect)frame //待补充,ios6
- (CGRect)frameForAlignmentRect:(CGRect)alignmentRect //待补充,ios6
- (UIEdgeInsets)alignmentRectInsets //待补充,ios6
- (UIView *)viewForBaselineLayout //待补充,ios6

Triggering Constraint-Based Layout //触发约束布局

- (BOOL)needsUpdateConstraints //返回约束布局是否需要更新,YES为是,ios6
- (void)setNeedsUpdateConstraints //更新约束布局,ios6
- (void)updateConstraints //更新约束布局,ios6
- (void)updateConstraintsIfNeeded //更新约束布局及其子布局,ios6

Debugging Constraint-Based Layout //调试约束布局

- (NSArray *)constraintsAffectingLayoutForAxis:(UILayoutConstraintAxis)axis //待补充,ios6
- (BOOL)hasAmbiguousLayout //待补充,ios6
- (void)exerciseAmbiguityInLayout //待补充,ios6

Drawing and Updating the View //绘制和更新视图

- (void)drawRect:(CGRect)rect //在view中绘制一个矩形
- (void)setNeedsDisplay //使view重绘
- (void)setNeedsDisplayInRect:(CGRect)invalidRect //指定矩形重绘
@property(nonatomic) CGFloat contentScaleFactor //待补充

Formatting Printed View Content //格式化内容

- (UIViewPrintFormatter *)viewPrintFormatter //返回view的打印对象
- (void)drawRect:(CGRect)area forViewPrintFormatter:(UIViewPrintFormatter *)formatter //使用某个区域来打印

Managing Gesture Recognizers //管理手势

- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer //添加手势识别器
- (void)removeGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer //删除手势识别器
@property(nonatomic, copy) NSArray *gestureRecognizers //获取手势集合
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer //通过返回值决定是否识别此手势

Animating Views with Blocks //使多个view执行动画

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion //使一个或多个view执行动画
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion //使一个或多个view执行动画
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations //使一个或多个view执行动画
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion //在一个view上创建过渡动画
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion //

Animating Views //view动画

+ (void)beginAnimations:(NSString *)animationID context:(void *)context //标志动画代码开始

时间: 2024-08-01 22:43:54

ios开发 view视图的相关文章

[转]iOS开发之视图控制器(UIViewController)

视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视图(它可以有子视图),其view属性指向它所管理的视图.UIViewController类可以有子类,可以使用一个系统的UIViewController子类或者直接自己创建一个UIViewController的子类. 使用代码创建控制器和视图. 开始创建一个基于窗口的Empty Applicatio

iOS开发系列--视图切换

概述 在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单.在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarController UINavigationController 模态窗口 UITabBarController iOS三种视图切换的原理各不相同: UITabBarController:以平行的方式管理视图,各个视图之间往往关系并不大,每个加入到UITabBarController的视图都会进行初始化即使当前不显示在

iOS开发中视图控制器ViewControllers之间的数据传递

iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storyboard中传递数据. 首先新建一个空工程,并添加一个根视图控制器类,如下图所示: # 在函数didFinishLunchingWithOption中添加几行代码,完成后如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 - (BOOL)application:(UIApplication

IOS开发之视图和视图控制器

视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西.在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多.在UIKit框架中都有一个UIWindow来容纳我们的View.应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类.UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示.窗口是用来显示视图的,下面我们将会结合着实例来具体的

【iOS开发】视图控制器加载和卸载时的几个函数

1.-(void)loadView 你应该永远不要直接调用这个函数.当视图控制器的view属性被请求但是其值为nil时,该函数将会被调用.该函数加载或创建一个视图并把它分配给view属性. 如果视图控制器有一个与之相关联的nib文件,这个方法将会从nib文件中加载视图.当视图控制器的nibName属性的值不是nil时,就说明视图控制器有一个与之相关联的nib文件.如果你直接用initWithNibName:bundle:函数给视图控制器分配一个nib文件或者如果ios发现再应用程序中有一个以视图

iOS开发-View中frame和bounds区别

开发中调整View的时候的经常会遇到frame和bounds,刚开始看的时候不是很清楚,不过看了一下官方文档,frame是确定视图在父视图中的位置,和本身的大小,bounds确定可以确定子视图在当前视图中的位置,还可以改变View的大小,如果bounds确定大小,那么View的视图优先选择的bounds中的宽高.Center的位置是相对于父坐标系中的定位.苹果官方给了一张图片供参考: 如果还不是很清晰,可以参考一下frame和bounds的中代码: -(CGRect)frame{ return

精通IOS开发-表视图的使用

// // ViewController.m // Simple Table // // Created by Jierism on 16/7/20. // Copyright © 2016年 Jierism. All rights reserved. // #import "ViewController.h" @interface ViewController ()<UITableViewDelegate,UITableViewDataSource> // 声明一个数组,

mask层--- ios开发view圆角属性的layer层的实质

今天突然领悟了之前学习的一些基础的UI属性 就是在我们设置view的圆角的时候 比方说下面的代码 UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 60, 60)]; button.layer.masksToBounds = YES; button.layer.cornerRadius = 30; 这里给button设置圆角属性 以前一直这么写 知道layer是view的绘制的一层 一直这么用 今天突然领悟

iOS开发之视图控制器(UIViewController)

视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视图(它可以有子视图),其view属性指向它所管理的视图.UIViewController类可以有子类,可以使用一个系统的UIViewController子类或者直接自己创建一个UIViewController的子类. 使用代码创建控制器和视图. 开始创建一个基于窗口的Empty Applicatio