zoukankan      html  css  js  c++  java
  • 添加一个视图 UIView

    #import "AppDelegate.h"

    @interface AppDelegate ()

    @end

    @implementation AppDelegate

    //手动内存管理,

    - (void)dealloc

    {

        //    [_window release];

        self.window = nil;

        //调用此方法的时候,自动对子视图进行release

        [super dealloc];

    }

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

        

        self.window = [[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];

        self.window.backgroundColor = [UIColor whiteColor];

        [self.window makeKeyAndVisible];

        

        //

        self.window.rootViewController = [[UIViewController alloc] init];

        

        //添加一个视图

        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];

        //设置视图的背景色

        view.backgroundColor = [UIColor blackColor];

        //添加到window上

        [self.window addSubview:view];

        [view release];

        

        //创建3个相同大小的视图,从上往下布局,分别红绿蓝

       // NSArray *colors = @[[UIColor redColor], [UIColor greenColor], [UIColor blueColor]];

        //RGB颜色

        /*  0xrrggbb    0xff ff ff  白色  */

        // 40 178 165

        //   0~1.0   alpha 表示不透明度  0~1.0

        //arc4random_uniform(256)  从0~255中随机获取一个数

        //    UIColor *myColor = [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1];

        

        

        //forin

        for (int i = 0; i < 3; i++)

        {

            UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 100 + 100*i, 200, 100)];

            //        view.backgroundColor = colors[i];

            //随机色

            UIColor *myColor = [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1];

            view.backgroundColor = myColor;

            //tag值一定是正整数,并且不能等于0

            view.tag = 100+i;

            

            [self.window addSubview:view];

            [view release];

        }

        

        

        //获取window的子视图  NSArray

        NSLog(@"%@", self.window.subviews);

        

        //设置隐藏  YES 隐藏  NO 不隐藏

        view.hidden = NO;

        

        //通过tag值获取对应的视图

        UIView *tempView = [self.window viewWithTag:100];

        tempView.backgroundColor = [UIColor redColor];

        

        //    tempView.frame = CGRectMake(self.window.frame.size.width/2 - tempView.frame.size.width/2, self.window.frame.size.height/2 - tempView.frame.size.height/2, 200, 100);

        //设置中心点  CGPoint

        //center参考系是相对父视图

        tempView.center = CGPointMake(self.window.frame.size.width/2, self.window.frame.size.height/2);

        //后面添加的视图,在上层

        

        //获取当前视图的父视图

        NSLog(@"%@", tempView.superview);

        

        

        

        UIView *yellowView = [[UIView alloc] initWithFrame:CGRectMake(80, 450, 150, 150)];

        yellowView.backgroundColor = [UIColor yellowColor];

        [self.window addSubview:yellowView];

        [yellowView release];

        

        //设置阴影效果

        // CALayer  主要做图层的渲染

        //设置阴影的不透明度

        yellowView.layer.shadowOpacity = 1;

        //设置阴影的方向和长度

        yellowView.layer.shadowOffset = CGSizeMake(-10, -20);

        //设置阴影颜色  CGColor   core graphy

        //    yellowView.layer.shadowColor = [UIColor greenColor].CGColor;

        

        //设置圆角半径  ,设置为宽度的一半,变成圆形(视图正方形)

        yellowView.layer.cornerRadius  = 75;

        

        //设置边框, 随着圆角变化

        yellowView.layer.borderWidth = 3;

        //边框的颜色

        //    yellowView.layer.borderColor =

        

        UIView *greenView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 75, 75)];

        greenView.backgroundColor = [UIColor greenColor];

        [yellowView addSubview:greenView];

        [greenView release];

        

        //去掉超出父视图的部分  默认NO

        yellowView.clipsToBounds = YES;

        

        //旋转视图  仿射变换   弧度

        //  角度 和弧度的换算    a/180  =  l/π

        //   l  =  a * π / 180

        //正值 顺时针旋转     负 逆时针旋转

        //参考系 原来的transform

        yellowView.transform = CGAffineTransformMakeRotation(45 * M_PI / 180);

        //原来基础上累加

        //    yellowView.transform = CGAffineTransformRotate(yellowView.transform, -45 * M_PI / 180);

        //设置视图的不透明度

        yellowView.alpha = 0.5;

        //对父视图的操作,子视图会跟着变化

        

        

        //放大或者缩小

        //第1个参数,x轴缩放量

        //    yellowView.transform = CGAffineTransformMakeScale(2, 2);

        //累加的伸缩

        //    yellowView.transform = CGAffineTransformScale(yellowView.transform, 0.5, 0.5);

        

        //添加动画效果

    #if 0

        //开始动画

        [UIView beginAnimations:nil context:nil];

        //设置动画持续时间

        [UIView setAnimationDuration:5];

        //在这里填写动画完成后的效果(最后一帧)

        

        //平移

        //    yellowView.transform = CGAffineTransformTranslate(yellowView.transform, 100, 0);

        yellowView.transform = CGAffineTransformMakeTranslation(100, 0);

        //提交动画

        [UIView commitAnimations];

    #endif

        //等于默认的

        yellowView.transform = CGAffineTransformIdentity;

        

        //使用Block的方式来实现动画

        [UIView animateWithDuration:5 animations:^{

            //

            CGRect  rect = yellowView.frame;

            rect.origin.y -= 200;

            yellowView.frame = rect;

            

        } completion:^(BOOL finished) {

            //前面的动画结束时调用

            if (finished)

            {

                //表示前面的动画已经执行完毕,可以添加其它动画

                [UIView animateWithDuration:2 animations:^{

                    yellowView.alpha = 0;

                }];

                

            }

        }];

        

        //    NSTimer

        

        return YES;

    }

  • 相关阅读:
    简单图表分析(2/2)
    简单图表分析(1/2)
    juqery dragsort使用遇到的问题
    移动端实战总结
    CSS VS JS动画,哪个更快[译]
    HTML5移动端图片上传模块
    移动端使用rem适配及相关问题
    再谈vertical-align与line-height
    Javascript中的Promise
    Retina屏实现1px边框
  • 原文地址:https://www.cnblogs.com/chunji/p/5257428.html
Copyright © 2011-2022 走看看