动画绘制坐标系

来源:互联网 发布:linux boot 编辑:程序博客网 时间:2024/05/22 16:38

思路一:利用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 = [selfsetLine];

    UIView *yLine = [selfsetLine];

    

    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;

    

    [UIViewanimateWithDuration:5.0animations:^{

        xLine.frame = xRect;

        yLine.frame = yRect;

    }];

}


- (UIView *)setLine{

    UIView *lineView = [[UIViewalloc] init];

    [self.viewaddSubview: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 = [UIColorblackColor];

    lineView.alpha =0.618;

    

    return lineView;

}


0 0
原创粉丝点击