2011-08-12 1 views
2

Dans mon application, j'ai un tableau de points qui ont été ajoutés par l'utilisateur et je veux être en mesure de créer une forme remplie à partir de ces points.Comment dessiner une forme remplie à partir d'un tableau de points et obtenir des taps dans cette forme?

Je veux aussi être en mesure d'obtenir des taps dans la forme (pas le cadre rectangulaire de la forme, mais la forme elle-même). Aussi, si le robinet n'est pas dans la forme (mais peut-être encore dans le cadre de la forme), je veux que le robinet soit «transmis» à une forme en dessous s'il y en a une. Dans un sens, j'essaie de créer un UIButton de forme irrégulière à partir d'un tableau de points.

Répondre

5
  1. Créer une sous-classe de UIView.
  2. Dans celui-ci, créez une propriété UIBezierPath à partir du tableau de points (moveToPoint: et addLineToPoint:).
  3. Dans drawRect:, utilisez le chemin Bézier pour dessiner la forme (appelez fill ou stroke ou les deux).
  4. Pour le test d'accès, remplacez pointInside:withEvent: et renvoyez la valeur correcte en fonction de la valeur de retour -[UIBezierPath containsPoint:].

Assurez-vous de convertir correctement entre les systèmes de coordonnées de la vue et du chemin s'ils diffèrent les uns des autres.

Questions connexes