zoukankan      html  css  js  c++  java
  • image

     

    UIView升级&UIImageView

     

     

    【UIView属性及方法】

     

    //@property(nonatomic) CGRect frame;

    //@property(nonatomic) CGRect bounds;

    //@property(nonatomic,readonly) UIView *superview;

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

     

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

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

    //- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;

    //- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;

     

    //- (void)removeFromSuperview;

     

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

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

    //- (void)sendSubviewToBack:(UIView *)view;

     

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

    通过找- (UIView *)viewWithTag:(NSInteger)tag;

     

     

    【跟随/停靠模式】

    //允许子视图跟随,默认就是yes(这个是给父视图设置的)

    @property(nonatomic) BOOL autoresizesSubviews;

    //随父视图变化的效果(这个是给子视图设置的)

    @property(nonatomic) UIViewAutoresizing autoresizingMask;    

     

    UIView【基础动画效果】,三种实现方式

    【一】

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:0.5];

    //do something

    [UIView commitAnimations];

     

    【二】

    [UIView animateWithDuration:0.5 animations:^{

        //do something

        }];

     

    【三】

    [UIView animateWithDuration:0.5 animations:^{

        //do something

        } completion:^(BOOL finished){

            //动画完成后执行

        }];

     

     

    【UIImageView】图片视图类

     

    除了用allco initWithFrame的方式创建,还可以用图片直接初始化,如果用图片直接初始化,记得设frame

     

    //图片

    @property(nonatomic,retain) UIImage *image;

     

    //动画的图片数组

    @property(nonatomic,copy) NSArray *animationImages;

     

    //动画时间(也就是一次完整的动画需要的时间)

    @property(nonatomic) NSTimeInterval animationDuration;

     

    //动画循环次数,循环完以后会自动停止

    @property(nonatomic) NSInteger animationRepeatCount; 

     

    //开始动画

    - (void)startAnimating;

     

    //手动结束动画

    - (void)stopAnimating;

     

    //判断动画状态

    - (BOOL)isAnimating;

     

    - (void)viewDidLoad

    {

        [super viewDidLoad];

        // Do any additional setup after loading the view.

        

        UIView *bigView = [[UIView alloc] initWithFrame:CGRectMake(10, 30, 300, 300)];

        bigView.backgroundColor = [UIColor redColor];

        [self.view addSubview:bigView];

        

        NSArray *colorArr = [NSArray arrayWithObjects:[UIColor orangeColor], [UIColor yellowColor], [UIColor greenColor], nil];

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

            UIView *view = [[UIView alloc] initWithFrame:CGRectMake(i*30+10, i*30+10, 120, 120)];

            view.backgroundColor = [colorArr objectAtIndex:i];

            [bigView addSubview:view];

        }

        

        //查询某一个view所有的子view

        NSArray *subArr = [bigView subviews];

        

        //通过序号查询某一个子view,声明一个指针指向他

        UIView *midView = [subArr objectAtIndex:1];

        

        midView.backgroundColor = [UIColor blackColor];

        

    #pragma mark - 插入

        

        UIView *insertView = [[UIView alloc] initWithFrame:CGRectMake(30, 30, 120, 120)];

        insertView.backgroundColor = [UIColor cyanColor];

        

        //在固定的层级插入一个视图(如果越界,结果和addSubView一样)

    //    [bigView insertSubview:insertView atIndex:100];

        

        //在某一个子view的上面插入

    //    [bigView insertSubview:insertView aboveSubview:midView];

        

        //在某一个子视图的下面插入

        [bigView insertSubview:insertView belowSubview:midView];

        

        

    #pragma mark - 删除

        

        //自杀

        [insertView removeFromSuperview];

        

        

    #pragma mark - 改

        

        //通过层级找到对应的2个视图,然后交换这2个视图的层级

    //    [bigView exchangeSubviewAtIndex:1 withSubviewAtIndex:2];

        

        //将一个子视图放到最下面

        [bigView sendSubviewToBack:midView];

        

        //将一个子视图带到最上面

        [bigView bringSubviewToFront:midView];

        

        //延迟调用

        [self performSelector:@selector(qqq:) withObject:midView afterDelay:3];

    }

     

    - (void)qqq:(UIView *)view

    {

        //找到某个view的父视图

        UIView *sView = [view superview];

        

        [sView removeFromSuperview];

    }

     

    - (void)viewDidLoad

    {

        [super viewDidLoad];

        // Do any additional setup after loading the view.

        

        UIView *bigView = [[UIView alloc] initWithFrame:CGRectMake(10, 30, 100, 150)];

        bigView.backgroundColor = [UIColor redColor];

        bigView.tag = 1;

        [self.view addSubview:bigView];

        

        UIView *smallView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 50, 50)];

        smallView.backgroundColor = [UIColor blueColor];

        [bigView addSubview:smallView];

        

        //允许子视图跟随

        bigView.autoresizesSubviews = YES;

        

        //设置子视图的跟随模式

        smallView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;

        

        

        //获取屏幕高度

        CGFloat height = [UIScreen mainScreen].bounds.size.height;

        

        //这种格式的btn自带大小和图片

        UIButton *btn = [UIButton buttonWithType:UIButtonTypeInfoLight];

        

        //自带大小,所以直接设置中心点坐标就可以

        btn.center = CGPointMake(160, height-20-11);

        

        [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:btn];

        

        //将一个rect转化成字符串

        NSLog(@"%@",NSStringFromCGRect(btn.frame));

        

        

        UIButton *bBtn = [UIButton buttonWithType:UIButtonTypeContactAdd];

        bBtn.center = CGPointMake(200, height-20-11);

        [bBtn addTarget:self action:@selector(bBtnClick) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:bBtn];

    }

     

    - (void)bBtnClick

    {

        UIView *bigView = [self.view viewWithTag:1];

        

        [UIView animateWithDuration:2 animations:^{

            bigView.alpha = 0;

        } completion:^(BOOL finished) {

            NSLog(@"动画结束以后回调");

            bigView.alpha = 1;

        }];

        

        NSLog(@"透明度动画开始");

    }

     

    - (void)btnClick:(UIButton *)sender

    {

        sender.selected = !sender.selected;

        

        UIView *bigView = [self.view viewWithTag:1];

        CGRect frame = bigView.frame;

        

        if (sender.selected) {

            frame.size.width *= 2;

            frame.size.height *= 2;

            

            //开启简单动画

            [UIView beginAnimations:nil context:NULL];

            

            //设置动画时间

            [UIView setAnimationDuration:2];

            

            bigView.frame = frame;

            

            bigView.backgroundColor = [UIColor colorWithRed:arc4random_uniform(256)/255.0f green:arc4random_uniform(256)/255.0f blue:arc4random_uniform(256)/255.0f alpha:1];

            

            //提交动画

            [UIView commitAnimations];

            

        } else {

            frame.size.width /= 2;

            frame.size.height /= 2;

            

            //实现动画的简写方式

            [UIView animateWithDuration:2 animations:^{

                bigView.frame = frame;

                bigView.backgroundColor = [UIColor colorWithRed:arc4random_uniform(256)/255.0f green:arc4random_uniform(256)/255.0f blue:arc4random_uniform(256)/255.0f alpha:1];

            }];

        }

        

        NSLog(@"改变大小");

    }

     

    - (void)viewDidLoad

    {

        [super viewDidLoad];

        // Do any additional setup after loading the view.

        self.view.backgroundColor = [UIColor grayColor];

        

        //创建一个图片视图

        UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(30, 60, 150, 300)];

        

        //设置需要展示的图片

        iv.image = [UIImage imageNamed:@"aa"];

        //如果运行这个程序设备支持Retina,会优先查找aa@2x.png

        //如果找不到,再去查找aa.png

        //如果设备不支持Retina,直接查找aa.png

        

        iv.backgroundColor = [UIColor redColor];

        [self.view addSubview:iv];

        

        //使用一个图片初始化图片视图

        UIImageView *aiv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bb"]];

        

        //设置frame,宽和高通过图片获取

        aiv.frame = CGRectMake(180, 100, aiv.image.size.width, aiv.image.size.height);

        

        [self.view addSubview:aiv];

        

        NSLog(@"%@",NSStringFromCGRect(aiv.frame));

    }

     

    - (void)viewDidLoad

    {

        [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

        self.view.backgroundColor = [UIColor yellowColor];

        

        UIImageView *iv = [[UIImageView alloc] initWithFrame:self.view.bounds];

        iv.image = [UIImage imageNamed:@"cat_angry0000.jpg"];

        [self.view addSubview:iv];

        

        NSMutableArray *imageArr = [NSMutableArray array];

        for (int i = 0; i<26; i++) {

            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"cat_angry%04d.jpg",i]];

            [imageArr addObject:image];

        }

        

        //设置iv的动画数组、单次循环的时间、循环次数

        iv.animationImages = imageArr;

        iv.animationDuration = imageArr.count/10;

        iv.animationRepeatCount = 3;

        

        iv.tag = 1;

        

        //允许用户交互(可以接收点击事件),iv默认是不接收的

        iv.userInteractionEnabled = YES;

        

        UIButton *btn = [[UIButton alloc] initWithFrame:self.view.bounds];

        [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];

        [iv addSubview:btn];

    }

     

    - (void)btnClick

    {

        UIImageView *iv = (UIImageView *)[self.view viewWithTag:1];

        

        if ([iv isAnimating]) {

            //如果iv正在播放动画,那么让他就停止

            [iv stopAnimating];

            return;

        }

        

        //开始动画

        [iv startAnimating];

    }

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------

    - (void)viewDidLoad

    {

        [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

        

        NSArray *numArr=[NSArray arrayWithObjects:@"1",@"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"10", @"11", @"12", @"13",@"14",  nil];

        for (int i=0; i<14; i++) {

            

                UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(0, i*30+30, 30, 30)];

                [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

                [btn setTitle:[numArr objectAtIndex:i] forState:UIControlStateNormal];

                btn.titleLabel.font=[UIFont boldSystemFontOfSize:20];

                [self.view addSubview:btn];

            

        }

      

        

        for (int i=0; i<14; i++) {

     

                UIView *lView=[[UIView alloc]initWithFrame:CGRectMake(30, i*30+30, arc4random_uniform(290), 20)];

                lView.backgroundColor=[UIColor blueColor];

                [self.view addSubview:lView];

                lView.tag=i+1;

            

            

        }

     

        CGFloat heigth=[UIScreen mainScreen].bounds.size.height;

        CGFloat width=[UIScreen mainScreen].bounds.size.width;

        UIButton *btn1=[UIButton buttonWithType:UIButtonTypeSystem];

        btn1.frame=CGRectMake(width/2-20, heigth-20-50, 40, 20);

        [btn1 setTitle:@"NEXT" forState:UIControlStateNormal];

        [btn1 addTarget:self action:@selector(aClick) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:btn1];

    }

     

     

    -(void)aClick

    {

        NSArray *arr = [self.view subviews];

        for (int i=0; i<[arr count]; i++) {

            

            UIView *subview = [arr objectAtIndex:i];

            if (subview.tag>0&&subview.tag<15) {

                CGRect frame = subview.frame;

                frame.size.width = arc4random_uniform(290);

                subview.backgroundColor= [UIColor colorWithRed:arc4random_uniform(256)/255.0f green:arc4random_uniform(256)/255.0f blue:arc4random_uniform(256)/255.0f alpha:1];

                

                [UIView beginAnimations:nil context:NULL];

                [UIView setAnimationDuration:0.5];

                

                subview.frame = frame;

                

                [UIView commitAnimations];

            }

        }

     

     

    }

     

    让明天,不后悔今天的所作所为
  • 相关阅读:
    2020.8月总结
    fps逆向总结
    fps人物基址的寻找
    python学习_012
    python学习_011
    python学习_010
    python学习_009
    python学习_008
    pytorch DataLoader模块的使用
    python 继承类的初始化用法
  • 原文地址:https://www.cnblogs.com/-yun/p/4348557.html
Copyright © 2011-2022 走看看