UIView属性及方法

时间:2021-03-20 16:15:11
 @property(nonatomic) CGFloat alpha //设置视图的透明度
//透明度的设置从最小0.0到1.0 ,1.0为完全不透明,
//其中这个属性只影响当前视图,并不会影响其子视图
@property(nonatomic, getter=isOpaque) BOOL opaque
//决定当前视图是否是透明的 @property(nonatomic) BOOL autoresizesSubviews
//这个属性是决定当视图大小边界发生改变时,其子视图是否也跟着自动调整大小 @property(nonatomic) UIViewAutoresizing autoresizingMask
//决定当当前视图的父视图大小发生变化时,当前视图该怎么调整自己的size @property(nonatomic, copy) UIColor *backgroundColor //当前视图的背景色 @property(nonatomic) CGRect bounds
//当前视图的边界,包括大小和原点,这里是在系统坐标系下
@property(nonatomic) CGRect frame
//当前视图的边界,包括大小和原点,这里是在父视图的坐标系下
@property(nonatomic) CGPoint center //当前视图的中心,并指定是在父视图的坐标系下 @property(nonatomic) BOOL clearsContextBeforeDrawing
//决定在视图重画之前是否先清理视图以前的内容,缺省值为YES
//如果你把这个属性设为NO,那么你要保证能在 drawRect:方法中正确的绘画。如果你的代码
//已经做了大量优化,那么设为NO可以提高性能,尤其是在滚动时可能只需要重新绘画视图的一部分 @property(nonatomic) BOOL clipsToBounds
//决定子视图是否被限定在当前视图的bounds中,缺省值为NO @property(nonatomic) UIViewContentMode contentMode
//决定当视图边界变时呈现视图内容的方式 @property(nonatomic) CGFloat contentScaleFactor
//应用到当前视图的比例Scale @property(nonatomic, getter=isExclusiveTouch) BOOL exclusiveTouch
//决定当前视图是否是处理触摸事件的唯一对象 @property(nonatomic, copy) NSArray *gestureRecognizers
//当前视图所附加的手势识别器 @property(nonatomic, getter=isHidden) BOOL hidden
//当前视图是否隐藏 @property(nonatomic, readonly, retain) CALayer *layer
//用于视图渲染的核心动画层 @property(copy, nonatomic) NSArray *motionEffects
//当前视图的运动效果,IOS7才开始拥有 @property(nonatomic, getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled
//当前视图是否接受多点触控事件,缺省值为NO @property(nonatomic, copy) NSString *restorationIdentifier
//该标示符决定该视图是否支持恢复状态,其实也只是个标示符而已
//个人觉得就相当于配置表视图每个单元格时使用的标示符一样,可以直接在内存中重用,提高了性能
//还有一点需注意,不应该简单的定义这个标示符,因为其所属的view controller ,还有view controller的
//所有 父view controllers都必须有一个恢复标识符 @property(nonatomic, readonly, copy) NSArray *subviews //当前视图的所有子视图
@property(nonatomic, readonly) UIView *superview //当前视图的父视图 @property(nonatomic) NSInteger tag //当前视图的标签 @property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode
//色调调整模式,开始用于IOS7
@property(nonatomic, retain) UIColor *tintColor
//色调颜色,开始用于IOS7 @property(nonatomic) CGAffineTransform transform //视图的仿射变换 @property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
//决定与用户交互事件是否从被忽略并从事件队列中移除 @property(nonatomic, readonly) UIWindow *window //当前视图上的UIWindow对象

UIView类方法基本上都是与动画有关的:

 + (void)addKeyframeWithRelativeStartTime:(double)frameStartTime relativeDuration:(double)frameDuration animations:(void (^)(void))animations
//指定一个关键帧的单个贞的时间和动画,从IOS7开始使用
//这里说一下参数,第一个frameStartTime其实是个倍数从0到1,假设一个动画持续的时间是2秒
//设置frameStartTime为0.5,那么后面设置的动画,将会在整体动画执行1秒后开始执行
//第二个参数frameDuration同第一个,是指动画持续时间
//第三个是一个block对象,里面就是你设置的所要执行的动画,无参数和返回值 + (void)animateKeyframesWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewKeyframeAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//为当前视图创建一个可以用于设置基本关键帧动画的block对象,从IOS7开始使用
//这个方法可以与上一个方法结合使用 + (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations
//设置视图切换时的动画
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//同上,只是多了可以在动画结束后执行一些东西
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//增加了几个参数,分别是delay动画执行前的等待时间,options 动画方式
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity
options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//在原来的基础上又增加了两个参数,实现了像弹簧一样的动画
//dampingRatio 这个参数是设置弹簧的阻尼比例
//velocity 这个是设置弹簧的最初速度
//从IOS7开始使用 + (void)beginAnimations:(NSString *)animationID context:(void *)context
//开始指定的动画,context附加的应用程序信息用来传递给动画代理消息 + (void)commitAnimations //结束一个动画块并开始当他在动画块外时。
//如果当前的动画块是最外层的动画块,当应用程序返回到循环运行时开始动画块。
动画在一个独立的线程中所有应用程序不会中断。使用这个方法,多个动画可以被实现。
查看setAnimationBeginsFromCurrentState:来了解如果开始一个动画当另外一个动画在播放的时候。 + (Class)layerClass //返回一个用于为实例创建图层的类 + (void)performSystemAnimation:(UISystemAnimation)animation onViews:(NSArray *)views options:(UIViewAnimationOptions)options animations:(void (^)(void))parallelAnimations completion:(void (^)(BOOL finished))completion
//在一组视图上执行指定的系统动画,并可以并行自定义的动画
//其中parallelAnimations就是与系统动画并行的自定义动画
+ (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation
//视图转换时不执行动画,参数为block对象,来执行你要执行的代码 + (BOOL)areAnimationsEnabled //判断视图是否允许使用动画
+ (BOOL)requiresConstraintBasedLayout
//返回视图是否依赖基于约束的布局系统 对视图动画的设置 + (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState
//设置动画在当前环境下是否开始播放 + (void)setAnimationCurve:(UIViewAnimationCurve)curve
//设置动画块中的动画属性变化的曲线。主要是阶段性快慢的变化,比如先快后慢,先慢后快...
//动画曲线是动画运行过程中相对的速度。如果在动画块外调用这个方法将会无效 + (void)setAnimationDelay:(NSTimeInterval)delay
//在动画块中设置动画的延迟属性(以秒为单位) + (void)setAnimationDelegate:(id)delegate
//设置动画消息的代理。 + (void)setAnimationWillStartSelector:(SEL)selector
//动画将要开始时调用选择器选择的方法
//选择器应该选择的方法为- (void)animationDidStart:(NSString *)animationID context:(void *)context.
+ (void)setAnimationDidStopSelector:(SEL)selector
//动画结束后调用选择器选择的方法
//选择器应该选择的方法为- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context. + (void)setAnimationDuration:(NSTimeInterval)duration
//设置动画的持续时间 + (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses
//设置动画块中的动画效果是否自动重复播放。 + (void)setAnimationRepeatCount:(float)repeatCount
//设置动画重复的次数 + (void)setAnimationsEnabled:(BOOL)enabled
//设置是否激活动画 + (void)setAnimationStartDate:(NSDate *)startTime
//设置动画开始时间 + (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache
//为指定的视图设置一个过渡,transition为过渡效果
//参数cache 如果是YES,那么在开始和结束图片视图渲染一次并在动画中创建帧;
否则,视图将会在每一帧都渲染。例如缓存,你不需要在视图转变中不停的更新,
你只需要等到转换完成再去更新视图。 视图过渡动画
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
//创建指定视图的过渡动画
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion
//创建制定视图之间转换的过渡动画