Je pense que UIBezierPath est la bonne façon de procéder, alors vous devriez certainement lire à ce sujet. J'ai écrit un exemple rapide pour faire un chemin, il y a beaucoup plus d'options que je n'utilise pas.
Dessiner les chemins n'est pas la partie difficile. Vous devrez suivre toutes les boîtes que vous créez et stocker les connexions entre eux en quelque sorte, cela dépend beaucoup de la façon dont vous stockez les boîtes, mais une base de données relationnelle se sent comme la bonne solution. Étant donné ces objets et connexions, vous générez des chemins dans drawrect pour l'une de vos vues.
- (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];
}
Ce serait complimenté avec le code qui peut dire si les boîtes sont à droite de l'autre ou de la gauche, et vous pouvez plier la ligne avec addCurveToPoint: ou un certain nombre d'autres méthodes sur UIBezierPath. La plupart des trucs de chemin dépendent de votre style, il n'y a pas de style correct pour connecter deux points.
Avez-vous eu une logique pour les connecter - quand dessiner une ligne droite et quand dessiner un 90 degrés? – Prathiba
Non, je ne suis pas encore très loin. – Jordan