您的位置:首页 > 移动开发 > Objective-C

动画绘制坐标系

2015-12-18 17:22 477 查看
思路一:利用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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息