动画绘制坐标系
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;
}
//绘制坐标轴
- (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;
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器