首页 > 代码库 > UIView属性及方法

UIView属性及方法

 1 @property(nonatomic) CGFloat alpha //设置视图的透明度 2 //透明度的设置从最小0.0到1.0 ,1.0为完全不透明, 3 //其中这个属性只影响当前视图,并不会影响其子视图 4 @property(nonatomic, getter=isOpaque) BOOL opaque 5 //决定当前视图是否是透明的 6  7 @property(nonatomic) BOOL autoresizesSubviews 8 //这个属性是决定当视图大小边界发生改变时,其子视图是否也跟着自动调整大小 9 10 @property(nonatomic) UIViewAutoresizing autoresizingMask11 //决定当当前视图的父视图大小发生变化时,当前视图该怎么调整自己的size12 13 @property(nonatomic, copy) UIColor *backgroundColor //当前视图的背景色14 15 @property(nonatomic) CGRect bounds 16 //当前视图的边界,包括大小和原点,这里是在系统坐标系下17 @property(nonatomic) CGRect frame18 //当前视图的边界,包括大小和原点,这里是在父视图的坐标系下19 @property(nonatomic) CGPoint center //当前视图的中心,并指定是在父视图的坐标系下20 21 @property(nonatomic) BOOL clearsContextBeforeDrawing 22 //决定在视图重画之前是否先清理视图以前的内容,缺省值为YES23 //如果你把这个属性设为NO,那么你要保证能在 drawRect:方法中正确的绘画。如果你的代码24 //已经做了大量优化,那么设为NO可以提高性能,尤其是在滚动时可能只需要重新绘画视图的一部分25 26 @property(nonatomic) BOOL clipsToBounds 27 //决定子视图是否被限定在当前视图的bounds中,缺省值为NO28 29 @property(nonatomic) UIViewContentMode contentMode30 //决定当视图边界变时呈现视图内容的方式31 32 @property(nonatomic) CGFloat contentScaleFactor33 //应用到当前视图的比例Scale34 35 @property(nonatomic, getter=isExclusiveTouch) BOOL exclusiveTouch36 //决定当前视图是否是处理触摸事件的唯一对象37 38 @property(nonatomic, copy) NSArray *gestureRecognizers39 //当前视图所附加的手势识别器40 41 @property(nonatomic, getter=isHidden) BOOL hidden42 //当前视图是否隐藏43 44 @property(nonatomic, readonly, retain) CALayer *layer45 //用于视图渲染的核心动画层46 47 @property(copy, nonatomic) NSArray *motionEffects48 //当前视图的运动效果,IOS7才开始拥有49 50 @property(nonatomic, getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled51 //当前视图是否接受多点触控事件,缺省值为NO52 53 @property(nonatomic, copy) NSString *restorationIdentifier54 //该标示符决定该视图是否支持恢复状态,其实也只是个标示符而已55 //个人觉得就相当于配置表视图每个单元格时使用的标示符一样,可以直接在内存中重用,提高了性能56 //还有一点需注意,不应该简单的定义这个标示符,因为其所属的view controller ,还有view controller的57 //所有 父view controllers都必须有一个恢复标识符58 59 @property(nonatomic, readonly, copy) NSArray *subviews //当前视图的所有子视图60 @property(nonatomic, readonly) UIView *superview //当前视图的父视图61 62 @property(nonatomic) NSInteger tag //当前视图的标签63 64 @property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode65 //色调调整模式,开始用于IOS766 @property(nonatomic, retain) UIColor *tintColor67 //色调颜色,开始用于IOS768 69 @property(nonatomic) CGAffineTransform transform //视图的仿射变换70 71 @property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled72 //决定与用户交互事件是否从被忽略并从事件队列中移除73 74 @property(nonatomic, readonly) UIWindow *window //当前视图上的UIWindow对象

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

 1 + (void)addKeyframeWithRelativeStartTime:(double)frameStartTime relativeDuration:(double)frameDuration animations:(void (^)(void))animations 2 //指定一个关键帧的单个贞的时间和动画,从IOS7开始使用 3 //这里说一下参数,第一个frameStartTime其实是个倍数从0到1,假设一个动画持续的时间是2秒 4 //设置frameStartTime为0.5,那么后面设置的动画,将会在整体动画执行1秒后开始执行 5 //第二个参数frameDuration同第一个,是指动画持续时间 6 //第三个是一个block对象,里面就是你设置的所要执行的动画,无参数和返回值 7  8 + (void)animateKeyframesWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewKeyframeAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion 9 //为当前视图创建一个可以用于设置基本关键帧动画的block对象,从IOS7开始使用10 //这个方法可以与上一个方法结合使用11 12 + (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations13 //设置视图切换时的动画14 + (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion15 //同上,只是多了可以在动画结束后执行一些东西16 + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion17 //增加了几个参数,分别是delay动画执行前的等待时间,options 动画方式18 + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity19 options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion20 //在原来的基础上又增加了两个参数,实现了像弹簧一样的动画21 //dampingRatio 这个参数是设置弹簧的阻尼比例22 //velocity 这个是设置弹簧的最初速度23 //从IOS7开始使用24 25 + (void)beginAnimations:(NSString *)animationID context:(void *)context26 //开始指定的动画,context附加的应用程序信息用来传递给动画代理消息27 28 + (void)commitAnimations  //结束一个动画块并开始当他在动画块外时。29 //如果当前的动画块是最外层的动画块,当应用程序返回到循环运行时开始动画块。30 动画在一个独立的线程中所有应用程序不会中断。使用这个方法,多个动画可以被实现。31 查看setAnimationBeginsFromCurrentState:来了解如果开始一个动画当另外一个动画在播放的时候。32 33 + (Class)layerClass //返回一个用于为实例创建图层的类34 35 + (void)performSystemAnimation:(UISystemAnimation)animation onViews:(NSArray *)views options:(UIViewAnimationOptions)options animations:(void (^)(void))parallelAnimations completion:(void (^)(BOOL finished))completion36 //在一组视图上执行指定的系统动画,并可以并行自定义的动画37 //其中parallelAnimations就是与系统动画并行的自定义动画38 + (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation39 //视图转换时不执行动画,参数为block对象,来执行你要执行的代码40 41 + (BOOL)areAnimationsEnabled //判断视图是否允许使用动画42 + (BOOL)requiresConstraintBasedLayout43 //返回视图是否依赖基于约束的布局系统44 45 对视图动画的设置46 47 + (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState48 //设置动画在当前环境下是否开始播放49 50 + (void)setAnimationCurve:(UIViewAnimationCurve)curve51 //设置动画块中的动画属性变化的曲线。主要是阶段性快慢的变化,比如先快后慢,先慢后快...52 //动画曲线是动画运行过程中相对的速度。如果在动画块外调用这个方法将会无效53 54 + (void)setAnimationDelay:(NSTimeInterval)delay55 //在动画块中设置动画的延迟属性(以秒为单位)56 57 + (void)setAnimationDelegate:(id)delegate58 //设置动画消息的代理。59 60 + (void)setAnimationWillStartSelector:(SEL)selector61 //动画将要开始时调用选择器选择的方法62 //选择器应该选择的方法为- (void)animationDidStart:(NSString *)animationID context:(void *)context.63 + (void)setAnimationDidStopSelector:(SEL)selector64 //动画结束后调用选择器选择的方法65 //选择器应该选择的方法为- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context. 66 67 + (void)setAnimationDuration:(NSTimeInterval)duration68 //设置动画的持续时间69 70 + (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses71 //设置动画块中的动画效果是否自动重复播放。72 73 + (void)setAnimationRepeatCount:(float)repeatCount74 //设置动画重复的次数75 76 + (void)setAnimationsEnabled:(BOOL)enabled77 //设置是否激活动画78 79 + (void)setAnimationStartDate:(NSDate *)startTime80 //设置动画开始时间81 82 + (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache83 //为指定的视图设置一个过渡,transition为过渡效果84 //参数cache 如果是YES,那么在开始和结束图片视图渲染一次并在动画中创建帧;85    否则,视图将会在每一帧都渲染。例如缓存,你不需要在视图转变中不停的更新,86    你只需要等到转换完成再去更新视图。87 88 视图过渡动画89 + (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion90 //创建指定视图的过渡动画91 + (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion92 //创建制定视图之间转换的过渡动画