如何在两个形状之间绘制线连接器,以便线条以适当的角度绘制并随着形状的任何移动一起移动?
这样的事情:
我想我的UIBezier曲线是我需要的,但是任何有关入门的教程或帮助都会受到赞赏。
答案 0 :(得分:0)
我认为UIBezierPath是正确的方法,所以你一定要仔细阅读。我写了一个快速的例子来说明我还没有使用更多的选项。
绘制路径并不困难。 您必须跟踪您创建的所有框并存储它们之间的连接某种程度上,它在很大程度上取决于您如何存储框,但关系数据库感觉就像是正确的解决方案。给定这些对象和连接,您将为其中一个视图生成drawrect路径。
- (void)drawRect:(CGRect)rect {
// say we already created a "Make" box
UIBoxThing *make = ...
// and here we already created a "Diagrams" box
UIBoxThing *diagrams = ...
[[UIColor blackColor] setStroke];
// since we know Diagrams and Make are connected (via some other data), we must draw an arrow between them
UIBezierPath *path = [[UIBezierPath alloc] init];
path.lineWidth = 2;
// the midpoint of the right side of our first box
CGPoint start = CGPointMake(make.frame.origin.x+make.frame.size.width, make.frame.origin.y+(make.frame.size.height/2));
[path moveToPoint:start];
// the midpoint of the left size of our second box
CGPoint end = CGPointMake(diagram.frame.origin.x, diagram.frame.origin.y+(diagram.frame.size.height/2));
[path addLineToPoint:end];
[path stroke];
}
这可以说明代码可以判断框是否在另一个或左边的右边,你可以使用addCurveToPoint:或UIBezierPath上的许多其他方法来修改这一行。大多数路径都取决于你的风格,连接两个点没有一个正确的风格。