UI基础--(4)UIView深入认识、UIImageView动画及手势

知识点:

1.UIView的简单动画

1.UIView层次关系

2.UIImageView的使用

3.UIView 停靠模式

 

=====================

UIView的简单动画

   1.UIVew坐标系统

     1)UIView相对于父视图的坐标系统

 

   2.UVIew的frame,center,bounds关系

     frame:  该view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)

     bounds: 该view在本地坐标系统中的位置和大小。(参照点是,本地坐标系统)

     center: 该view的中心点在父view坐标系统中的位置。(参照点是,父亲的坐标系统)

 

   3.设置透明度

    @property(nonatomic)  CGFloat   alpha 

 

   4.UIView中的简单动画效果1

     1.开始动画

       +(void)beginAnimations:(NSString *)animationID context:(void *)context;

     2.持续时间

       +(void)setAnimationDuration:(CFTimeInterval)dur;

     3.提交动画(运行动画)

       +(void)commitAnimations;

 

  5. UIView中的简单动画效果2

+ (void)animateWithDuration:(NSTimeInterval)duration 

animations:(void (^)(void))animations 

completion:(void (^)(BOOL finished))completion 

                    

 

     练习:把一块长为100的正方形视图从(0,0)移动到(100,100),然后到达的瞬间又从

(100,100)移动到(0,0),要求要使用动画效果。

=====================

UIView层次关系

   1.如何在UView上叠加新的UIView

     - (void)addSubview:(UIView *)view;

 

   2.如何获取UIView的父视图

     @property(nonatomic,readonly) UIView  *superview;

 

   3.如何获取UIView子视图,插入顺序

     @property(nonatomic,readonly,copy) NSArray *subviews;

 

   4.把一个子视图移动到最前端

- (void)bringSubviewToFront:(UIView *)view;

 

   5.交换子视图的位置

- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;

 

   6.如何在特定位置插入一个视图

     - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;

 

   7.如何删除一个视图(该函数是给要删除的视图发送)

     - (void)removeFromSuperview;

ps:removeFromSuperview:将一个视图从父视图当中移除,同时会移除该视图上的所有子视图

 

   8.如何剪切一个视图超出父视图之外的部分

     @property(nonatomic)  BOOL   clipsToBounds; 

 

   9.如何隐藏和显示一个UIView

     @property(nonatomic,getter=isHidden) BOOL  hidden;

 

   9.检测视图之间的关系

     - (BOOL)isDescendantOfView:(UIView *)view;

=====================

UIImageView使用

   

1.如何重新设置图片内容

  @property(nonatomic,retain) UIImage *image

2.如何解决图片内容变形问题(该属性由UIView继承)

  @property(nonatomic) UIViewContentMode contentMode

UIViewContentModeScaleToFill             拉伸内容,会导致内容变形

UIViewContentModeScaleAspectFit    拉伸内容,内容比例不变

UIViewContentModeScaleAspectFill    拉伸内容,内容比例不变,但是有可能部分内容不能显示

 

   练习:用2个按钮来回切换4张图片的显示

 

3.简单的手势操作

 

   UITapGestureRecognizer             点击

   UIPinchGestureRecognizer              二指往內或往外拨动,平时经常用到的缩放

   UIRotationGestureRecognizer        旋转

   UISwipeGestureRecognizer           滑动,快速移动

   UIPanGestureRecognizer                 拖移,慢速移动

   UILongPressGestureRecognizer      长按

 

ps:当视图hidden属性设置为YES的时候,或者userInteractionEnabled=NO

的时候,就无法进行人机交互

 添加手势(三步曲)

// 先创建一个imageView(给imageView添加手势),然后再添加

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clik)]; 

[imageView addGestureRecognizer:tap];

 imageView.userInteractionEnabled = YES;   //  记得要打开交互

 4.动画

// 注意:UIImageView相册有一个动画效果setAnimationImages

[imageView setAnimationImages:imageArray];

=====================

UIView 停靠模式

 

   1.自动布局:当父视图变化时子视图如何变化

1)先设置父视图的autoresize属性为YES

2)再设置子视图的mask属性

 

    @property(nonatomic) BOOL autoresizesSubviews;

 

    @property(nonatomic) UIViewAutoresizing autoresizingMask;

UIViewAutoresizingNone

就是不自动调整。

UIViewAutoresizingFlexibleLeftMargin 

自动调整与superView左边的距离,保证与superView右边的距离不变 UIViewAutoresizingFlexibleRightMargin

自动调整与superView的右边距离,保证与superView左边的距离不变。 UIViewAutoresizingFlexibleTopMargin 

自动调整与superView顶部的距离,保证与superView底部的距离不变。 UIViewAutoresizingFlexibleBottomMargin 

自动调整与superView底部的距离,保证与superView顶部的距离不变。 UIViewAutoresizingFlexibleWidth

自动调整自己的宽度,保证与superView左边和右边的距离不变。 UIViewAutoresizingFlexibleHeight

自动调整自己的高度,保证与superView顶部和底部的距离不变。

 

转载于:https://www.cnblogs.com/iOSteemo/p/4313048.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值