線が適切な角度で描画され、形状の動きに合わせて移動するように、2つの形状の間に線コネクタをどのように描画しますか?
このようなもの:
UIBezier Curveが必要だと思いますが、チュートリアルや開始のヘルプをいただければ幸いです。
線が適切な角度で描画され、形状の動きに合わせて移動するように、2つの形状の間に線コネクタをどのように描画しますか?
このようなもの:
UIBezier Curveが必要だと思いますが、チュートリアルや開始のヘルプをいただければ幸いです。
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 の他の多くのメソッドを使用して線を曲げることができます。パスのほとんどはスタイルに依存します。2 つのポイントを接続するための正しいスタイルはありません。