动画绘制坐标系

本文介绍了两种在iOS应用中使用Objective-C绘制坐标系的方法。第一种利用Masonry约束改变坐标轴的尺寸,但结果不理想。第二种通过计算坐标轴起始位置,实现了从左下角开始绘制坐标系的动画效果,满足了需求。

思路一:利用Masonry约束x、y坐标的起始位置,在动画时间内改变x坐标轴的宽度和y坐标轴的高度。结果:坐标轴从屏幕左上角开始绘制,不是理想中的效果。代码如下:

//绘制坐标轴

- (void)drawCoordSystem{

    UIView *xCoord = [selfgetLine];

    UIView *yCoord = [selfgetLine];

    [xCoord mas_updateConstraints:^(MASConstraintMaker *make) {

        make.width.mas_equalTo(@(self.view.bounds.size.width - 20.0));

    }];

    

    [yCoord mas_updateConstraints:^(MASConstraintMaker *make) {

        make.height.mas_equalTo(@(self.view.bounds.size.height - 60));

    }];


    [self.viewsetNeedsUpdateConstraints];

    [self.viewupdateConstraintsIfNeeded];


    [UIViewanimateWithDuration:5.0animations:^{

        [self.viewlayoutIfNeeded];

    }];

}

//设置坐标轴起始位置

- (UIView *)getLine{

    UIView *lineView = [[UIViewalloc] init];

    [self.viewaddSubview:lineView];

    [lineView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.left.equalTo(self.view).with.offset(10.0);

        make.bottom.equalTo(self.view).with.offset(-20.0);

        make.width.mas_equalTo(@(2.0));

        make.height.mas_equalTo(@(2.0));

    }];

    lineView.backgroundColor = [UIColorblackColor];

    lineView.alpha =0.618;

    return lineView;

}


思路二:通过计算确定x、y坐标轴的起始位置,动画改变宽度、高度。结果:坐标轴从左下角开始绘制,满足需求。代码如下:

- (void)drawCoordSystem{

    UIView *xLine = [self setLine];

    UIView *yLine = [self setLine];

    

    CGRect xRect = xLine.frame;

    CGRect yRect = yLine.frame;

    

    xRect.size.width = self.view.bounds.size.width - 20;

    yRect.size.height = self.view.bounds.size.height - 50;

    yRect.origin.y -= yRect.size.height;

    

    [UIView animateWithDuration:5.0 animations:^{

        xLine.frame = xRect;

        yLine.frame = yRect;

    }];

}


- (UIView *)setLine{

    UIView *lineView = [[UIView alloc] init];

    [self.view addSubview:lineView];

    

    CGFloat lineViewX = 10.0;

    CGFloat lineViewY = self.view.bounds.size.height - 20.0;

    CGFloat lineViewW = 2.0;

    CGFloat lineViewH = 2.0;

    

    lineView.frame = CGRectMake(lineViewX, lineViewY, lineViewW, lineViewH);

    

    lineView.backgroundColor = [UIColor blackColor];

    lineView.alpha = 0.618;

    

    return lineView;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值