UIVIew的使用大全
来源:互联网 发布:阿里云授权服务中心 编辑:程序博客网 时间:2024/04/25 09:20
/** 获取到事件中点击的视图用来判断当前点击 */
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
/** 获取事件event中的触发视图*/
UIView *hitView = [superhitTest:pointwithEvent:event];
/** 判断是否当前视图 */
if (hitView ==self) {
returnnil;
} else {
return hitView;
}
}
/** 判断是否是当前视图触发的事件 */
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
return [superpointInside:point withEvent:event];
}
/** 将一个坐标点转换成指定view的坐标 */
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view{
return [superconvertPoint:point toView:view];
}
/** 将一个坐标点转换成当前view的坐标 */
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view{
return [superconvertPoint:point fromView:view];
}
/** 将一个CGRect转换成指定view的CGRect */
- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view{
return [superconvertRect:rect toView:view];
}
/** 讲一个CGRect转换成当前view的CGRect */
- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view{
return [superconvertRect:rect fromView:view];
}
/** 获取适合label内容的CGSize */
- (CGSize)sizeThatFits:(CGSize)size{
return [supersizeThatFits:size];
}
/** 自动设置适合内容的CGSize */
- (void)sizeToFit{
[supersizeToFit];
}
/** 从父视图中移除当前视图 */
- (void)removeFromSuperview{
[superremoveFromSuperview];
}
/** 在index层插入一个视图 */
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index{
[superinsertSubview:view atIndex:index];
}
/** 交换两个视图的图层 */
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2{
[superexchangeSubviewAtIndex:index1 withSubviewAtIndex:index2];
}
/** 加入一个视图在最上一层 */
- (void)addSubview:(UIView *)view{
[superaddSubview:view];
}
/** 在siblingSubview视图下面插入一个视图 */
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview{
[superinsertSubview:view belowSubview:siblingSubview];
}
/** 在siblingSubview视图上面插入一个视图 */
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview{
[superinsertSubview:view aboveSubview:siblingSubview];
}
/** 将一个视图放到最上一层 */
- (void)bringSubviewToFront:(UIView *)view{
[superbringSubviewToFront:view];
}
/** 将一个视图推送到最下层 */
- (void)sendSubviewToBack:(UIView *)view{
[supersendSubviewToBack:view];
}
/** 添加子视图时调用 */
- (void)didAddSubview:(UIView *)subview;{
[superdidAddSubview:subview];
NSLog(@"添加子视图");
}
/** 将要移除子视图时调用 */
- (void)willRemoveSubview:(UIView *)subview{
[superwillRemoveSubview:subview];
NSLog(@"移除子视图");
}
/** 父视图将要发生更改时调用 */
- (void)willMoveToSuperview:(UIView *)newSuperview{
[superwillMoveToSuperview:newSuperview];
NSLog(@"父视图将要发生更改");
}
/** 父视图更改时调用 */
- (void)didMoveToSuperview{
[superdidMoveToSuperview];
NSLog(@"父视图发生更改");
}
/** 视图或其超视图将要展示到窗口调用 */
- (void)willMoveToWindow:(UIWindow *)newWindow{
[superwillMoveToWindow:newWindow];
NSLog(@"视图展示到窗口");
}
/** 视图或其超视图展示到窗口调用 */
- (void)didMoveToWindow{
[superdidMoveToSuperview];
NSLog(@"视图或其超视图展示到窗口");
}
/** 判断当前视图是否是指定视图或者其子视图 */
- (BOOL)isDescendantOfView:(UIView *)view{
return [superisDescendantOfView:view];
}
/** 获取当前视图内指定tag值的视图 */
- (UIView *)viewWithTag:(NSInteger)tag{
return [superviewWithTag:tag];
}
/** 在图层绘制时调用的方法 */
- (void)setNeedsLayout{
}
- (void)layoutIfNeeded{
}
/** 当视图上的图层发生改变时调用 */
- (void)layoutSubviews{
}
/** 发生自动布局时调用 */
- (void)layoutMarginsDidChange{
}
/** 绘制图层layer时调用 */
- (void)drawRect:(CGRect)rect{
}
/** 重绘图层 */
- (void)setNeedsDisplay{
}
/** 重绘图层指定范围 */
- (void)setNeedsDisplayInRect:(CGRect)rect{
}
/** tintColor 是一种有抛光效果的设置视图颜色 */
/** tintColor改变时调用 */
- (void)tintColorDidChange{
}
#pragma mark - 动画相关
/** 开启动画块 animationID动画标示 context参数 */
+ (void)beginAnimations:(NSString *)animationID context:(void *)context{
[superbeginAnimations:animationID context:context];
}
/** 提交动画块动画开始执行 */
+ (void)commitAnimations{
[supercommitAnimations];
}
/** 设置动画代理 */
+ (void)setAnimationDelegate:(id)delegate{
[supersetAnimationDelegate:delegate];
}
/** 当动画开始时发送一个消息给动画代理 */
+ (void)setAnimationWillStartSelector:(SEL)selector{
[supersetAnimationWillStartSelector:selector];
/** 动画代理执行selector方法 */
}
/** 当动画结束时发送一个消息给动画代理 */
+ (void)setAnimationDidStopSelector:(SEL)selector{
[supersetAnimationDidStopSelector:selector];
/** 动画代理执行selector方法 */
}
/** 设置动画时长默认0.2s */
+ (void)setAnimationDuration:(NSTimeInterval)duration{
[supersetAnimationDuration:duration];
}
/** 设置动画执行延迟时长默认0s */
+ (void)setAnimationDelay:(NSTimeInterval)delay{
[supersetAnimationDelay:delay];
}
/** 设置动画开始时间NSDate */
+ (void)setAnimationStartDate:(NSDate *)startDate{
[supersetAnimationStartDate:startDate];
}
/** 设置动画的曲线方式(就是动画的总体变化的时间曲线:开始快最后慢,开始慢最后快,最后慢,均匀线性)。
curve参数如下:
typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
UIViewAnimationCurveEaseInOut, // slow at beginning and end
UIViewAnimationCurveEaseIn, // slow at beginning
UIViewAnimationCurveEaseOut, // slow at end
UIViewAnimationCurveLinear
};
*/
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve{
[supersetAnimationCurve:curve];
}
/** 设置动画重复次数 */
+ (void)setAnimationRepeatCount:(float)repeatCount{
[supersetAnimationRepeatCount:repeatCount];
}
/**
设置动画是否做一次反向的执行。
如果设置为YES:动画将执行:动画初始状态》动画》动画完成状态》动画》动画初始状态。
如果设置为NO:默认值
*/
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses{
[supersetAnimationRepeatAutoreverses:repeatAutoreverses];
}
/** 设置动画开始时状态
当YES时:当上一次动画正在执行中,那么当下一个动画开始时,上一次动画的当前状态将成为下一次动画的开始状态。
当NO时:当上一个动画正在执行中,那么当下一个动画开始时,上一次动画需要先恢复到完成时的状态,然后在开始执行下一次动画。
*/
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState{
}
/** 添加动画到视图view上 transition动画样式 cache为YES时高效 但动画执行过程中不能更新UI为NO时每一帧都可以重新绘制 可以实时更新UI */
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView*)view cache:(BOOL)cache{
}
/** 是否支持动画默认YES */
+ (void)setAnimationsEnabled:(BOOL)enabled{
}
/** 返回动画效果是否被禁用 */
+ (BOOL)areAnimationsEnabled{
return [superareAnimationsEnabled];
}
/** 强制一些动作不使用动画我也不懂 测出来再补上 */
+ (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation{
}
#pragma mark - 动画Block块
/**
duration 执行时长
delay 延迟时长
options 动画执行曲线
animations 动画动作Block
completion 动画执行完毕后执行的Block
*/
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion {
}
/**
duration 执行时长
animations 动画动作Block
completion 动画执行完毕后执行的Block
*/
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion {
}
/**
duration 执行时长
animations 动画动作Block
*/
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations {
}
/**
SpringAnimation动画干净 快速
usingSpringWithDamping 0~1 弹簧效果越小弹簧效果越明显
initialSpringVelocity 初始速度初始速度取值较高而时间较短时 也会出现弹簧效果
*/
+ (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 {
}
/**
过场动画
duration 动画时长
view 进行转场动画的视图
options 专场动画类型
animations 执行动画
completion 动画结束后调用的Block
*/
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void(^)(BOOL finished))completion {
}
/**
过场动画
[fromView.superview addSubview:toView];
[fromView.superview removeFromSuperview];
*/
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion {
}
/**
在一组视图上执行指定的系统动画,并可以并行自定义的动画
parallelAnimations就是与系统动画并行的自定义动画
*/
+ (void)performSystemAnimation:(UISystemAnimation)animation onViews:(NSArray*)views options:(UIViewAnimationOptions)options animations:(void (^)(void))parallelAnimations completion:(void (^)(BOOL finished))completion {
}
#pragma mark - UIViewKeyframeAnimations
/**
关键帧动画
duration 动画时长
delay 动画延迟
options 动画效果选项
animations 动画执行代码
completion 动画结束执行代码
*/
+ (void)animateKeyframesWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewKeyframeAnimationOptions)options animations:(void(^)(void))animations completion:(void (^)(BOOL finished))completion {
}
/**
frameStartTime 动画相对开始时间
frameDuration 动画相对持续时间
自身会根据动画总持续时长自动匹配其运行时长
*/
+ (void)addKeyframeWithRelativeStartTime:(double)frameStartTime relativeDuration:(double)frameDuration animations:(void (^)(void))animations {
}
#pragma mark - 手势
/** 添加手势 */
- (void)addGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer {
}
/** 移除手势 */
- (void)removeGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer {
}
/** 是否执行该手势 */
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
returnYES;
}
/** 添加运动拟真效果 */
/** UIMotionEffect 运动拟真效果类物理效果 */
- (void)addMotionEffect:(UIMotionEffect *)effect {
}
/** 移除运动拟真效果 */
- (void)removeMotionEffect:(UIMotionEffect *)effect {
}
#pragma mark - 约束自动布局
/** 只知道是自动布局相关但是具体效果 未知查不到 测不出==! */
- (NSArray *)constraints {
return [superconstraints];
}
/** 添加约束需要先开启自动布局 */
- (void)addConstraint:(NSLayoutConstraint *)constraint {
}
/** 添加约束 */
- (void)addConstraints:(NSArray *)constraints {
}
/** 移除约束 */
- (void)removeConstraint:(NSLayoutConstraint *)constraint {
}
/** 移除约束 */
- (void)removeConstraints:(NSArray *)constraints {
}
/** 更新视图和其子视图的约束 */
- (void)updateConstraintsIfNeeded {
}
/** 更新视图和其子视图的约束 */
- (void)updateConstraints {
}
/** 是否更新视图的约束 */
- (BOOL)needsUpdateConstraints {
return [superneedsUpdateConstraints];
}
/** 设置视图的约束需要更新 */
- (void)setNeedsUpdateConstraints {
}
/** 是否关闭自动布局 */
- (BOOL)translatesAutoresizingMaskIntoConstraints {
return [supertranslatesAutoresizingMaskIntoConstraints];
}
/** 是否关闭自动布局 */
- (void)setTranslatesAutoresizingMaskIntoConstraints:(BOOL)flag {
}
/** 是否支持自动布局 */
+ (BOOL)requiresConstraintBasedLayout {
return [superrequiresConstraintBasedLayout];
}
/** 返回给定框架的视图的对齐矩阵 */
- (CGRect)alignmentRectForFrame:(CGRect)frame {
return [superalignmentRectForFrame:frame];
}
/** 返回给定对齐矩形的视图的frame */
- (CGRect)frameForAlignmentRect:(CGRect)alignmentRect {
return [superframeForAlignmentRect:alignmentRect];
}
/** 对当前View设置用来布局的矩形设置偏移 */
- (UIEdgeInsets)alignmentRectInsets {
return [superalignmentRectInsets];
}
/** 默认返回当前视图的底部作为baseline。我们可以重写上述方法,但必须返回的是当前视图中的子视图 */
- (UIView *)viewForBaselineLayout {
return [superviewForBaselineLayout];
}
/** 通过重写intrinsicContentSize可以设置当前视图显示特定内容时的大小 */
- (CGSize)intrinsicContentSize {
CGSize size = [superintrinsicContentSize];
if (self.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassCompact) {
size.width +=4.0f;
} else {
size.width +=40.0f;
}
if (self.traitCollection.verticalSizeClass == UIUserInterfaceSizeClassCompact) {
size.height +=4.0;
} else {
size.height +=40.0;
}
return size;
}
/** 视图根据内部内容设置Size */
- (void)invalidateIntrinsicContentSize {
[superinvalidateIntrinsicContentSize];
}
- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis {
return [supercontentHuggingPriorityForAxis:axis];
}
/** 使其在“内容大小”的基础上不能继续变大 */
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis {
}
- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis {
return [supercontentCompressionResistancePriorityForAxis:axis];
}
/** 使其在在其“内容大小”的基础上不能继续变小 */
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis {
}
/** 动态计算控件的Size targetSize可传参数:UILayoutFittingCompressedSize最小情况下可能的Size UILayoutFittingExpandedSize最大情况下可能的Size */
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize {
return [supersystemLayoutSizeFittingSize:targetSize];
}
/** 动态计算控件的Size UILayoutPriority优先级
horizontalFittingPriority 水平约束优先级
verticalFittingPriority 垂直约束优先级 */
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority verticalFittingPriority:(UILayoutPriority)verticalFittingPriority {
return[supersystemLayoutSizeFittingSize:targetSizewithHorizontalFittingPriority:horizontalFittingPriorityverticalFittingPriority:verticalFittingPriority];
}
/** 约束检查为什么这个View 这样显返回值 约束条件 */
- (NSArray *)constraintsAffectingLayoutForAxis:(UILayoutConstraintAxis)axis {
return [superconstraintsAffectingLayoutForAxis:axis];
}
/** 判断当前的自动布局约束是否还有其他满足约束的条件 */
- (BOOL)hasAmbiguousLayout {
return [superhasAmbiguousLayout];
}
/** 随机实现一个满足约束的条件 */
- (void)exerciseAmbiguityInLayout {
}
#pragma mark - NSCoder
/** 归档时编码 */
- (void) encodeRestorableStateWithCoder:(NSCoder *)coder {
}
/** 反归档时解码 */
- (void) decodeRestorableStateWithCoder:(NSCoder *)coder {
}
/** 复制一个复合视图
afterUpdates 是否视图展示时才生成视图
No 会立即生成快照,并不会调用重新设置颜色的方法无色
YES 当调用这个视图时生成
*/
- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates {
return [supersnapshotViewAfterScreenUpdates:afterUpdates];
}
/** 复制一个指定范围偏移量的复合视图 */
- (UIView *)resizableSnapshotViewFromRect:(CGRect)rect afterScreenUpdates:(BOOL)afterUpdates withCapInsets:(UIEdgeInsets)capInsets {
return[superresizableSnapshotViewFromRect:rectafterScreenUpdates:YESwithCapInsets:capInsets];
}
/** 将指定范围的视图绘制到图形上下文中 */
- (BOOL)drawViewHierarchyInRect:(CGRect)rect afterScreenUpdates:(BOOL)afterUpdates {
return [superdrawViewHierarchyInRect:rect afterScreenUpdates:afterUpdates];
}
- UIVIew的使用大全
- 使用自定义的UIView
- UIView 的使用
- swift -UIView的使用
- UIView的使用setNeedsDisplay
- 使用UIView的animation
- UIView的基本使用
- UIView属性的使用
- UIView的属性使用
- UIView的使用
- UIView的使用
- UIView 的使用
- uiview的contentmode的使用
- UIView属性clipsToBounds的使用
- UILabel和UIView的使用
- 8.UIView的基本使用
- UIView的contentMode使用小结
- swift中UIView的使用
- LeetCode Scramble String
- 触发断点,堆被损坏问题
- 彻底卸载MySQL数据库方法
- Java编程思想
- 如何更改linux文件的拥有者及用户组(chown和chgrp)
- UIVIew的使用大全
- 数据挖掘回顾十一:关联规则挖掘之 Apirori 算法
- 堆和栈的区别(转过无数次的文章)
- nyoj76超级台阶 fibonacci数
- Poj1182食物链 (并查集)
- VxWorks的移植和BSP定制过程
- 文件操作之fread()和fwrite()函数
- 关于内存函数GlobalLock(),GlobalAlloc(),GlobalUnLock()用法
- 入职第一天总结----web.xml配置说明