zoukankan      html  css  js  c++  java
  • UI控件之UIView与动画

    UIView:用来展示用户的界面,响应用户的操作(继承自UIResponder)

    UIView的作用:绘图、动画、处理事件

    UIView可以包含和管理子视图,并且决定子视图的位置大小

    获取所有的子视图(数组)

    NSArray *subViews= self.window.subviews;

    将子视图放在某个子视图上面

    [self.window insertSubview:greenView aboveSubview:yellowView];

    将子视图放在某个子视图下面

    [self.window insertSubview:greenView belowSubview:blueView];

    将子视图放在某个下标位置处

    [self.window insertSubview:greenView atIndex:2];

    将某个子视图移到最上层

    [self.window bringSubviewToFront:redView];

    将某个子视图移到最底层

    [self.window sendSubviewToBack:blueView];

    设置是否允许父视图裁剪子视图(子视图比父视图大时)

    blackView.clipsToBounds=YES;

    设置是否允许在父视图尺寸变化时自动调整子视图的尺寸

    blackView.autoresizesSubviews=YES;

    设置子视图的调整模式,自动调整子视图的高度和宽度

    topView.autoresizingMask=

    UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

    获取父视图

    UIView *parentView= subView.superview;

    将topView从父视图中移除(删除视图topView)

    [topView removeFromSuperview];

    UIView动画有2种:

     属性动画:frame、bounds、center、backgroundColor、alpha、transform

     翻转动画:实现方式2种:iOS4.0之前:采用[]设置;iOS4.0之后:采用block实现

    1.iOS4.0之前:采用[]设置

    开始设置动画,第一个参数是动画名字,第二个参数是对象,一般为nil

    [UIView beginAnimations:@"animation" context:nil];

    设置动画的持续时间

    [UIView setAnimationDuration:1];

    设置动画开始的延迟时间

    [UIView setAnimationDelay:0];

    设置动画重复次数

    [UIView setAnimationRepeatCount:1];

    设置动画模式

    [UIView setAnimationCurve:UIViewAnimationCurveLinear];

        UIViewAnimationCurveEaseIn:动画开始时效果缓慢

        UIViewAnimationCurveEaseOut:动画结束时效果缓慢

        UIViewAnimationCurveEaseInOut:动画开始和结束时效果缓慢

        UIViewAnimationCurveLinear:动画的平滑效果

        

    设置代理,采用执行下面2个方法

    [UIView setAnimationDelegate:self];

    设置动画结束后执行的选择器方法

    [UIView setAnimationDidStopSelector:@selector(buttonClick:)];

    设置动画开始之前执行的选择器方法

    [UIView setAnimationWillStartSelector:@selector(buttonClick:)];

    设置图片视图的中心点

    imageView.center=CGPointMake(300, 600);

    设置图片视图的透明度

    imageView.alpha=0.1;

    设置缩放比例值

    imageView.transform=CGAffineTransformMakeScale(1.5, 1.5);

    在imageview原来的transform值基础上宽度高度放大为1.5被再赋给imageview,连续放大

    imageView.transform=CGAffineTransformScale(imageView.transform, 1.5, 1.5);

    设置旋转动画,每次旋转90度

    imageView.transform=CGAffineTransformRotate(imageView.transform, M_PI_2);

    动画开始

    [UIView commitAnimations];

    2.iOS4.0后用block实现属性动画

    可以设置动画的持续时间和动画内容

    [UIView animateWithDuration:1 animations:^{ }];

    设置动画的持续时间、动画内容和动画结束后执行的语句

    [UIView animateWithDuration:2 animations:^{} completion:^(BOOL finished) {}];

    设置动画持续时间、开始之前的延迟时间、动画效果、动画内容、动画结束后执行的block

    [UIView animateWithDuration:2 delay:1 options:UIViewAnimationOptionCurveLinear animations:^{} completion:^(BOOL finished) {}];

    设置翻转效果,第一个参数是翻转方向,第二个参数是操作的对象,

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.window cache:YES];

    设置翻转动画:第1个参数是操作的对象,第2个参数是持续时间,第3个参数是翻转的方向,第4个参数是动画结束后执行的语句

    [UIView transitionWithView:self.window duration:2 options:UIViewAnimationOptionTransitionCurlDown animations:^{

            [self.window exchangeSubviewAtIndex:1 withSubviewAtIndex:2];

        } completion:^(BOOL finished) {}];

    CALayer:层,可以用来渲染图片、制作动画,每创建一个view时,自动创建一个layer,不能重新创建和赋值,但是可以修改某些属性

    设置阴影颜色

    imageView.layer.shadowColor=[UIColor redColor].CGColor;

    设置阴影的偏移量

    imageView.layer.shadowOffset=CGSizeMake(10, 10);

    设置阴影的透明度,1不透明,0完全透明

    imageView.layer.shadowOpacity=0.8;

    设置边框的颜色

    imageView.layer.borderColor=[UIColor blueColor].CGColor;

    设置边框的宽度

    imageView.layer.borderWidth=5;

    设置圆角半径

    imageView.layer.cornerRadius=50;

    设置是否允许子视图被裁剪

    imageView.clipsToBounds=YES;

    http://www.cnblogs.com/PaulpauL/ 版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    P1246 编码
    P2638 安全系统
    P3913 车的攻击
    P2789 直线交点数
    What?100%基于深度强化学习的对冲基金
    AI | 重磅推荐!哥大开源“FinRL”:一个用于量化金融自动交易的深度强化学习库
    神经霍克斯过程:一个基于神经网络的自调节多变量点过程
    量化都玩IPU了?Man Group-Oxford研究所给你答案
    为什么数字资产生态系统能够增长到2万亿美元以上?
    ICML 获奖者陆昱成:去中心化机器学习的理论极限在哪里?
  • 原文地址:https://www.cnblogs.com/PaulpauL/p/4803723.html
Copyright © 2011-2022 走看看