線が適切な角度で描画され、図形の動きに合わせて移動するように、2つの図形の間に線コネクタを描く方法を教えてください。このようなiPhone:図形に接続された線コネクタ
何か:私はUIBezierカーブを想像
は私が必要なものですが、始めたばかりの任意のチュートリアルやヘルプをいただければ幸いです。
線が適切な角度で描画され、図形の動きに合わせて移動するように、2つの図形の間に線コネクタを描く方法を教えてください。このようなiPhone:図形に接続された線コネクタ
何か:私はUIBezierカーブを想像
は私が必要なものですが、始めたばかりの任意のチュートリアルやヘルプをいただければ幸いです。
私はUIBezierPathが正しい方法だと思うので、間違いなくそれを読んでください。私はパスを作るための簡単な例を書いていますが、私が使用していない多くのオプションがあります。
パスの描画は困難な部分ではありません。 あなたが作成したすべてのボックスを追跡し、それらの間の接続を保存する必要があります。何とか、ボックスの保存方法に大きく依存しますが、リレーショナルデータベースは適切なソリューションと感じます。これらのオブジェクトと接続が与えられると、あなたのビューの1つのためにパスを生成します。
- (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つのポイントを接続する正しいスタイルはありません。
私はこの回答に同意します。良いコードの例を探しています。ありがとう! – Jordan
直線を描画するときと90度を描画するときを結ぶロジックを得ましたか? – Prathiba
番号はまだあまり進んでいません。 – Jordan