dessiner un nombre variable de rectangle selon la taille de la vue
Rocou
Membre
Toujours dans le cadre de mon application de "location" je cherche à afficher un calendrier, sous forme de colonnes verticales dont chacune représente une journée.
Comment faire pour afficher un nombre de colonnes coà¯ncidant avec la taille de la vue (qui varie quand on agrandit/rétrécit la fenêtre), sans changer leur largeur?
voici le bout de mon code draw (qui plante):
Je me rend bien compte que la boucle for() doit perdre les pédales avec un nbColonnesAffichees qui change constamment dès que la taille de la vue varie mais comment faire?
Comment faire pour afficher un nombre de colonnes coà¯ncidant avec la taille de la vue (qui varie quand on agrandit/rétrécit la fenêtre), sans changer leur largeur?
voici le bout de mon code draw (qui plante):
int i;<br />//On dessine le calendrier<br /> <br />nbColonnesAffichees = (bounds.size.width/largeurColonneDefaut) + 1; <br /> <br />CGFloat hauteurColonne = bounds.size.height;<br /> <br />for(i =0;i<nbColonnesAffichees;i++)<br />{<br /> <br /> Calendrier *uneColonne = [ColArray objectAtIndex:i];<br /> <br /> NSRect laColonne = NSMakeRect([uneColonne abs_value], [uneColonne ord_value], [uneColonne largeur_value],hauteurColonne);<br /> <br /> [[NSColor whiteColor] set];<br /> NSRectFill(laColonne);<br /> [[NSColor darkGrayColor] set];<br /> NSFrameRectWithWidth ( laColonne, 0.3 ); <br />}<br />
Je me rend bien compte que la boucle for() doit perdre les pédales avec un nbColonnesAffichees qui change constamment dès que la taille de la vue varie mais comment faire?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu ne peux pas. Ce que tu veux faire est antagoniste:
- soit tu définis une taille minimale de colonne et tu agrandis toutes les colonnes pour remplir la vue en largeur
- soit tu définis une largeur fixe, et s'il n'y a pas assez de colonnes, la partie de droite de la vue sera vide.
La 2nde solution semble meilleure pour ton problème particulier.
Je ne sais pas où ça plante, il va te falloir chercher au débogueur.
Je m'en doutais un peu. Merci pour ta réponse,ça m'évite de longues heures de recherches infructueuses.