dessiner un nombre variable de rectangle selon la taille de la vue

RocouRocou Membre
00:32 modifié dans API AppKit #1
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):

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&lt;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?

Réponses

  • CéroceCéroce Membre, Modérateur
    00:32 modifié #2
    dans 1242986101:

    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?


    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.
  • RocouRocou Membre
    00:32 modifié #3
    dans 1242994677:

    dans 1242986101:

    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?


    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.

    Je m'en doutais un peu. Merci pour ta réponse,ça m'évite de longues heures de recherches infructueuses.
Connectez-vous ou Inscrivez-vous pour répondre.