zoukankan      html  css  js  c++  java
  • 菱形开合的实现 IOS

    实现的原理: 利用了自动布局和形变

    核心代码块:

    @implementation JHMainView

    {

        UILabel *label1,*label2,*label3,*label4;

        UIButton *btn;

    }

    - (id)initWithFrame:(CGRect)frame

    {

        self = [super initWithFrame:frame];

        if (self) {

            btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 120, 120, 120)];

            btn.transform = CGAffineTransformRotate(btn.transform, M_PI_4);

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

            btn.autoresizesSubviews = YES;

            //btn.backgroundColor = [UIColor cyanColor];

            

            

            label1 = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 60, 60)];

            

            label1.backgroundColor = [UIColor orangeColor];

            

            label2 = [[UILabel alloc]initWithFrame:CGRectMake(btn.bounds.size.width/2, 0, 60, 60)];

            label2.autoresizingMask =  UIViewAutoresizingFlexibleLeftMargin;

            label2.backgroundColor = [UIColor blackColor];

            

            label3 = [[UILabel alloc]initWithFrame:CGRectMake(0, btn.bounds.size.height/2, 60, 60)];

            label3.backgroundColor = [UIColor blueColor];

            label3.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;

            

            label4 = [[UILabel alloc]initWithFrame:CGRectMake(btn.bounds.size.width/2, btn.bounds.size.height/2, 60, 60)];

            label4.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;

            label4.backgroundColor = [UIColor purpleColor];

            

            [btn addSubview:label1];

            [btn addSubview:label2];

            [btn addSubview:label3];

            [btn addSubview:label4];

            [self addSubview:btn];

            

            

            

        }

        return self;

    }

    - (void)btnClick:(UIButton *)sender

    {

        static int i=1 ;

        btn.center = btn.center;

        

        if(i%2)

        {

            btn.bounds = CGRectMake(0, 0, 180, 180);

        }

        else

        {

            btn.bounds = CGRectMake(0, 0, 120, 120);

        }

        

        i++;

    }

    @end

  • 相关阅读:
    [leetcode]N-Queens II
    基于Linux的智能家居的设计(4)
    eclipse集成Python开发环境
    创业三年,离开公司,请各位看一下我的简历,指点一下未来的路
    Jquery实现选项卡功能
    R语言中两个数组(或向量)的外积怎样计算
    《Java程序猿面试笔试宝典》之组合与继承有什么差别
    Sublime Text3打造U盘便携Lua IDE
    php Laravel 框架之建立后台目录
    树的同构(25 分)
  • 原文地址:https://www.cnblogs.com/Ohero/p/3924317.html
Copyright © 2011-2022 走看看