NRGridView

24

Réponses

  • du coup je fais comment? visiblement c'est pas coché et je peux pas cocher.

    Mais c'est bizarre que tu me parle des .m car je n'ai que les .h dans NRGridView
  • Lol, je sais pourquoi le compilateur crache, c'est que dans une méthode, j'essayais sans me rendre compte de faire une affectation en même temps que j'essayais d'afficher le résultat de cette affectation.

    Mais bon merci xcode de n'avoir pas mieux cibler l'erreur, toute la journée à  essayer de trouver le problème !!!!!
  • ça semblait presque évident


    [font=helvetica, arial, sans-serif]4. Running pass 'ARM Instruction Selection' on function '@\01-[AppViewController browse1]'[/font]

    [font=helvetica, arial, sans-serif]
    [/font]
  • CéroceCéroce Membre, Modérateur
    Oui, les messages de build sont très intelligibles image/xd-laugh.gif' class='bbc_emoticon' alt='xd' />
  • yass_1988yass_1988 Membre
    mai 2012 modifié #36
    hummmmm image/baby.gif' class='bbc_emoticon' alt=' :o ' />
  • Re bonjour,



    dites j'ai une question !!!

    Voia qu'on je scroll (peut importe le type du scroll), je récupère les index de toutes les cellules visibles dans ma grille et par la suite je souhaite je souhaite rafraà®chir certaine (après modification de de la cellule).

    Voila mon code:
    <br />
    <br />
    - ([color=#b41ca4]void[/color])scrollViewDidEndDecelerating:([color=#7134aa]UIScrollView[/color] *)scrollView<br />
    {<br />
    [color=#b41ca4]    for[/color][color=#000000]([/color][color=#b41ca4]int[/color][color=#000000] k=[/color][color=#3d01d9]0[/color][color=#000000];k&lt;[[[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]indexPathsForVisibleCells[color=#000000]] [/color][color=#401082]count[/color][color=#000000]];k++)[/color]<br />
        {<br />
            [color=#b41ca4]if[/color][color=#000000]([[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]cellAtIndexPath[color=#000000]:[[[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]indexPathsForVisibleCells[color=#000000]] [/color][color=#401082]objectAtIndex[/color][color=#000000]:k]].[/color][color=#578187]imageView[/color][color=#000000].[/color][color=#7134aa]image[/color][color=#000000] ==[[/color][color=#7134aa]UIImage[/color][color=#000000] [/color][color=#401082]imageNamed[/color][color=#000000]:[[/color][color=#7134aa]NSString[/color][color=#000000] [/color][color=#401082]stringWithFormat[/color][color=#000000]:[/color][color=#c72c25]@&quot;wfm_mime_other_default.png&quot;[/color][color=#000000]]])[/color]<br />
            {[color=#401082]<br />
    [color=#000000]            [/color][color=#b41ca4]if[/color][color=#000000]([[[/color][color=#578187]tabFileUrlThumbnailBrowse2[/color][color=#000000] [/color]objectAtIndex[color=#000000]:[[[[[/color][color=#b41ca4]self[/color][color=#000000] [/color][color=#38595d]gridView[/color][color=#000000]] [/color][color=#38595d]indexPathsForVisibleCells[/color][color=#000000]] [/color]objectAtIndex[color=#000000]:k] [/color]row[color=#000000]]] [/color]isEqualToString[color=#000000]:[/color][color=#c72c25]@&quot;null&quot;[/color][color=#000000]])[/color][/color]<br />
                {[color=#38595d]<br />
    [color=#000000]                [[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]cellAtIndexPath[color=#000000]:[[[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]indexPathsForVisibleCells[color=#000000]] [/color][color=#401082]objectAtIndex[/color][color=#000000]:k]].[/color][color=#578187]imageView[/color][color=#000000].[/color][color=#7134aa]image[/color][color=#000000] =[[/color][color=#7134aa]UIImage[/color][color=#000000] [/color][color=#401082]imageNamed[/color][color=#000000]:[[/color][color=#7134aa]NSString[/color][color=#000000] [/color][color=#401082]stringWithFormat[/color][color=#000000]:[/color][color=#c72c25]@&quot;wfm_mime_photo.png&quot;[/color][color=#000000]]];[/color][/color]<br />
                }[color=#b41ca4]else[/color]<br />
                {<br />
                    [color=#7134aa]NSString[/color] * urlOfFile=[[color=#7134aa]NSString[/color] [color=#401082]stringWithFormat[/color]:[[color=#578187]tabFileUrlThumbnailBrowse2[/color] [color=#401082]objectAtIndex[/color]:[[[[[color=#b41ca4]self[/color] [color=#38595d]gridView[/color]] [color=#38595d]indexPathsForVisibleCells[/color]] [color=#401082]objectAtIndex[/color]:k] [color=#401082]row[/color]]]];<br />
                    [color=#7134aa]NSString[/color] * urlCompleteOfFile=[[color=#7134aa]NSString[/color] [color=#401082]stringWithFormat[/color]:[color=#c72c25]@&quot;http://***.***.***.***%@&quot;[/color],urlOfFile];<br />
                    [color=#7134aa]NSURL[/color] * imageOfFile=[[color=#7134aa]NSURL[/color] [color=#401082]URLWithString[/color]:urlCompleteOfFile];<br />
                    [color=#7134aa]UIImage[/color] * image=[[color=#7134aa]UIImage[/color] [color=#401082]imageWithData[/color]: [[color=#7134aa]NSData[/color] [color=#401082]dataWithContentsOfURL[/color]:imageOfFile]];<br />
    [color=#38595d]<br />
    [color=#000000]                [[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]cellAtIndexPath[color=#000000]:[[[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]indexPathsForVisibleCells[color=#000000]] [/color][color=#401082]objectAtIndex[/color][color=#000000]:k]].[/color][color=#578187]imageView[/color][color=#000000].[/color][color=#7134aa]image[/color][color=#000000] = image;[/color][/color]<br />
                }<br />
            }<br />
        }<br />
    }<br />
    




    Le seul soucis est que au lieu de rafraichir les cellule une part une, sa les rafraichis tous à  la fin de ma boucle for.

    image/huh.gif' class='bbc_emoticon' alt='???' />
  • CéroceCéroce Membre, Modérateur
    Je ne comprends pas bien le problème: tu veux dire que si tu mets un point d'arrêt, tu ne vois pas les cellules changer au fur et à  mesure ?
  • heuuu, tu veux dire quoi par un point d'arrêt ?
  • Aà¯à¯à¯à¯à¯à¯eeeeeee image/whip.gif' class='bbc_emoticon' alt=' >:) ' />
  • AliGatorAliGator Membre, Modérateur
    Il veut dire un breakpoint
  • 'AliGator' a écrit:


    Il veut dire un breakpoint




    Tu veux dire un point d'arrêt ?
  • CéroceCéroce Membre, Modérateur
    mai 2012 modifié #43
    'yass_1988' a écrit:


    heuuu, tu veux dire quoi par un point d'arrêt ?


    Une flèche bleue qui apparaà®t quand on clique dans la marge et où le programme s'arrête.
  • StephSteph Membre
    Ah pour exécuter steph by steph LOL je sors
  • 'Steph' a écrit:


    Ah pour exécuter steph by steph LOL je sors


    image/implore.gif' class='bbc_emoticon' alt=' o:) ' />
  • yass_1988yass_1988 Membre
    mai 2012 modifié #46
    Bon après avoir regarder a quoi consister les points d'arrêté (Au passage assez pratique comme outil).

    J'en ai mis un dans ma fonction:
    <br />
    [color=#666600]-[/color][color=#000000] [/color][color=#666600]([/color][color=#B41CA4][color=#000088]void[/color][/color][color=#666600])[/color][color=#000000]scrollViewDidEndDecelerating[/color][color="#666600"]: ([/color][color=#7134AA][color=#660066]UIScrollView[/color][/color][color=#000000] [/color][color=#666600]*)[/color][color=#000000]scrollView[/color]<br />
    [color=#666600]{[/color]<br />
    [color=#B41CA4][color=#000000]	[/color][color=#000088]for[/color][/color][color=#000000][color=#666600]([/color][/color][color=#B41CA4][color=#000088]int[/color][/color][color=#000000][color=#000000] k[/color][color=#666600]=[/color][/color][color=#3D01D9][color=#006666]0[/color][/color][color=#000000][color=#666600];[/color][color=#000000]k[/color][color=#666600]&lt;[[[[/color][/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000][color=#000000] [/color][/color][color=#000000]gridView[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]indexPathsForVisibleCells[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#401082][color=#000000]count[/color][/color][color=#000000][color=#666600]];[/color][color=#000000]k[/color][color=#666600]++)[/color][/color]<br />
    [color=#000000]	[/color][color=#666600]{[/color]<br />
    [color=#000000]		[/color][color=#B41CA4][color=#000088]if[/color][/color][color=#000000][color=#666600]([[[/color][/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000][color=#000000] [/color][/color][color=#000000]gridView[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]cellAtIndexPath[/color][color=#000000][color=#666600]:[[[[/color][/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000][color=#000000] [/color][/color][color=#000000]gridView[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]indexPathsForVisibleCells[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#401082][color=#000000]objectAtIndex[/color][/color][color=#000000][color=#666600]:[/color][color=#000000]k[/color][color=#666600]]].[/color][/color][color=#578187][color=#000000]imageView[/color][/color][color=#000000][color=#666600].[/color][/color][color=#7134AA][color=#000000]image[/color][/color][color=#000000][color=#000000] [/color][color=#666600]==[[/color][/color][color=#7134AA][color=#660066]UIImage[/color][/color][color=#000000][color=#000000] [/color][/color][color=#401082][color=#000000]imageNamed[/color][/color][color=#000000][color=#666600]:[[/color][/color][color=#7134AA][color=#660066]NSString[/color][/color][color=#000000][color=#000000] [/color][/color][color=#401082][color=#000000]stringWithFormat[/color][/color][color=#000000][color=#666600]:[/color][/color][color=#C72C25][color=#666600]@[/color][color=#008800]&quot;wfm_mime_other_default.png&quot;[/color][/color][color=#000000][color=#666600]]])[/color][/color]<br />
    [color=#000000]		[/color][color=#666600]{[/color]<br />
    [color=#401082][color=#000000][color=#000000]			[/color][/color][color=#B41CA4][color=#000088]if[/color][/color][color=#000000][color=#666600]([[[/color][/color][color=#578187][color=#000000]tabFileUrlThumbnailBrowse2[/color][/color][color=#000000][color=#000000] [/color][/color][color=#000000]objectAtIndex[/color][color=#000000][color=#666600]:[[[[[/color][/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000][color=#000000] [/color][/color][color=#38595D][color=#000000]gridView[/color][/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#38595D][color=#000000]indexPathsForVisibleCells[/color][/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]objectAtIndex[/color][color=#000000][color=#666600]:[/color][color=#000000]k[/color][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]row[/color][color=#000000][color=#666600]]][/color][color=#000000] [/color][/color][color=#000000]isEqualToString[/color][color=#000000][color=#666600]:[/color][/color][color=#C72C25][color=#666600]@[/color][color=#008800]&quot;null&quot;[/color][/color][color=#000000][color=#666600]])[/color][/color][/color]<br />
    [color=#000000]			[/color][color=#666600]{[/color]<br />
    [color=#38595D][color=#000000][color=#000000]				[/color][color=#666600][[[/color][/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000][color=#000000] [/color][/color][color=#000000]gridView[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]cellAtIndexPath[/color][color=#000000][color=#666600]:[[[[/color][/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000][color=#000000] [/color][/color][color=#000000]gridView[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]indexPathsForVisibleCells[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#401082][color=#000000]objectAtIndex[/color][/color][color=#000000][color=#666600]:[/color][color=#000000]k[/color][color=#666600]]].[/color][/color][color=#578187][color=#000000]imageView[/color][/color][color=#000000][color=#666600].[/color][/color][color=#7134AA][color=#000000]image[/color][/color][color=#000000][color=#000000] [/color][color=#666600]=[[/color][/color][color=#7134AA][color=#660066]UIImage[/color][/color][color=#000000][color=#000000] [/color][/color][color=#401082][color=#000000]imageNamed[/color][/color][color=#000000][color=#666600]:[[/color][/color][color=#7134AA][color=#660066]NSString[/color][/color][color=#000000][color=#000000] [/color][/color][color=#401082][color=#000000]stringWithFormat[/color][/color][color=#000000][color=#666600]:[/color][/color][color=#C72C25][color=#666600]@[/color][color=#008800]&quot;wfm_mime_photo.png&quot;[/color][/color][color=#000000][color=#666600]]];[/color][/color][/color]<br />
    [color=#000000]			[/color][color=#666600]}[/color][color=#B41CA4][color=#000088]else[/color][/color]<br />
    [color=#000000]			[/color][color=#666600]{[/color]<br />
    [color=#000000]				[/color][color=#7134AA][color=#660066]NSString[/color][/color][color=#000000] [/color][color=#666600]*[/color][color=#000000] urlOfFile[/color][color=#666600]=[[/color][color=#7134AA][color=#660066]NSString[/color][/color][color=#000000] [/color][color=#401082][color=#000000]stringWithFormat[/color][/color][color=#666600]:[[/color][color=#578187][color=#000000]tabFileUrlThumbnailBrowse2[/color][/color][color=#000000] [/color][color=#401082][color=#000000]objectAtIndex[/color][/color][color=#666600]:[[[[[/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000] [/color][color=#38595D][color=#000000]gridView[/color][/color][color=#666600]][/color][color=#000000] [/color][color=#38595D][color=#000000]indexPathsForVisibleCells[/color][/color][color=#666600]][/color][color=#000000] [/color][color=#401082][color=#000000]objectAtIndex[/color][/color][color=#666600]:[/color][color=#000000]k[/color][color=#666600]][/color][color=#000000] [/color][color=#401082][color=#000000]row[/color][/color][color=#666600]]]];[/color]<br />
    [color=#000000]				[/color][color=#7134AA][color=#660066]NSString[/color][/color][color=#000000] [/color][color=#666600]*[/color][color=#000000] urlCompleteOfFile[/color][color=#666600]=[[/color][color=#7134AA][color=#660066]NSString[/color][/color][color=#000000] [/color][color=#401082][color=#000000]stringWithFormat[/color][/color][color=#666600]:[/color][color=#C72C25][color=#666600]@[/color][color=#008800]&quot;http://***.***.***.***%@&quot;[/color][/color][color=#666600],[/color][color=#000000]urlOfFile[/color][color=#666600]];[/color]<br />
    [color=#000000]				[/color][color=#7134AA][color=#000000]NSURL[/color][/color][color=#000000] [/color][color=#666600]*[/color][color=#000000] imageOfFile[/color][color=#666600]=[[/color][color=#7134AA][color=#000000]NSURL[/color][/color][color=#000000] [/color][color=#401082][color=#660066]URLWithString[/color][/color][color=#666600]:[/color][color=#000000]urlCompleteOfFile[/color][color=#666600]];[/color]<br />
    [color=#000000]				[/color][color=#7134AA][color=#660066]UIImage[/color][/color][color=#000000] [/color][color=#666600]*[/color][color=#000000] image[/color][color=#666600]=[[/color][color=#7134AA][color=#660066]UIImage[/color][/color][color=#000000] [/color][color=#401082][color=#000000]imageWithData[/color][/color][color=#666600]:[/color][color=#000000] [/color][color=#666600][[/color][color=#7134AA][color=#660066]NSData[/color][/color][color=#000000] [/color][color=#401082][color=#000000]dataWithContentsOfURL[/color][/color][color=#666600]:[/color][color=#000000]imageOfFile[/color][color=#666600]]];[/color]<br />
    <br />
    [color=#38595D][color=#000000][color=#000000]				[/color][color=#666600][[[/color][/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000][color=#000000] [/color][/color][color=#000000]gridView[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]cellAtIndexPath[/color][color=#000000][color=#666600]:[[[[/color][/color][color=#B41CA4][color=#000088]self[/color][/color][color=#000000][color=#000000] [/color][/color][color=#000000]gridView[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#000000]indexPathsForVisibleCells[/color][color=#000000][color=#666600]][/color][color=#000000] [/color][/color][color=#401082][color=#000000]objectAtIndex[/color][/color][color=#000000][color=#666600]:[/color][color=#000000]k[/color][color=#666600]]].[/color][/color][color=#578187][color=#000000]imageView[/color][/color][color=#000000][color=#666600].[/color][/color][color=#7134AA][color=#000000]image[/color][/color][color=#000000][color=#000000] [/color][color=#666600]=[/color][color=#000000] image[/color][color=#666600];[/color][/color][/color]<br />
    [color=#38595D][color=#000000][color=#666600]=&gt; // Point d&#39;arrêt[/color][/color][/color]<br />
    [color=#000000]			[/color][color=#666600]}[/color]<br />
    [color=#000000]		[/color][color=#666600]}[/color]<br />
    [color=#000000]	[/color][color=#666600]}[/color]<br />
    }
    




    Et c'est bien ce que je pensais, mes cellules ne sont rafraà®chis qu'après la fin de ma boucle for.
  • En même temps c'est pas étonnant, tu charges une image de façon synchrone, dans une boucle for en plus.. Je sais pas si l'UI a le temps de se mettre convenablement à  jour d'autant plus que UIImageView fonctionne de manière assez spécifique (l'image n'est pas dessinée dans le -drawRect:)
  • Donc tu veux dire que si par exemple, dans ma boucle for, la ligne en charge de récupérer l'image dans ma cell, au lieu de l'appeler tel quel, j'appelle une fonction qui serais en charge de le faire, par exemple:
    <br />
    <br />
    -([color=#b41ca4]void[/color]) refreshImageCell:([color=#578187]NRGridView[/color] *)gridView indexCellForRefresh:([color=#7134aa]NSIndexPath[/color] *)indexPath imageForRefresh:([color=#7134aa]UIImage[/color] *)imageForCell<br />
    {<br />
            [gridView [color=#38595d]cellAtIndexPath[/color]:indexPath].[color=#578187]imageView[/color].[color=#7134aa]image[/color]=imageForCell;<br />
    }<br />
    


    Mais que cette fonction soit appelé de manière asynchrone ?
  • Surtout pas, c'est le chargement de l'image via ton URL qui doit être fait de manière asynchrone.
  • D'accord, mais si je charge mon image via mon URL de manière asynchrone, quand est ce que je saurais que mon image est chargé ? Car du coup je peux pas appellé refreshImageCell:indexCellForRefresh:imageForRefresh: car sinon c'est le risque de l'appellé mais que l'image ne soit pas encore chargé.
  • AliGatorAliGator Membre, Modérateur
    Bah quand tu utilises NSURLConnexion pour faire un chargement asynchrone du contenu d'une URL (ici une image), tu as un delegate et donc des méthodes de délégué qui sont appelées quand le téléchargement des données est terminé.



    Si tu veux aussi faire plus simple et pas te prendre la tête à  réimplémenter tout ce système de téléchargement asynchrone, de signalisation quand le téléchargement est fini, de détection de la cellule à  laquelle ça correspondait et re refresh de la bonne cellule si elle n'a pas été recyclée par un scroll entre temps, etc... je te conseille fortement d'aller découvrir le framework AFNetworking.



    Ce framework est très puissant et très complet pour tout ce qui est chargement de données sur le réseau, et propose même une catégorie (au sens Objective-C) sur UIImageView (donc étend les capacités des UIImageViews existantes), permettant de spécifier une URL à  charger plutôt qu'une image. AFNetworking va alors automatiquement se charger de lancer la requête à  cette URL de façon asynchrone, détecter quand l'URL a fini de se charger, et mettre à  jour l'UIImage de l'UIImageView en conséquence, et va même également annuler la requête si jamais entre temps tu as demandé à  l'UIImageView d'afficher une autre image (le cas typique étant parce que l'utilisateur a scrollé dans ta NRGridView ou UITableView et que les cellules ont été recyclées, pour afficher d'autres données).



    Bref, tout est géré automatiquement par ce framework et tu te prendras donc moins la tête.

    (En plus il fonctionne avec des blocks, et ça c'est super puissant et pratique)
  • yass_1988yass_1988 Membre
    mai 2012 modifié #52
    Merci Ali pour l'information.



    Bon dernière question promis !!!

    Voila pour ma gridView, je souhaite avoir une backgroundView, sauf que j'ai beau cherché mais j'ai pas l'impression que cette propriété existe dans ce framework (A moins que je me trompe).

    Du coup pour contourner le problème:


    <br />
    <br />
    - ([color=#b41ca4]void[/color])viewDidLoad<br />
    {<br />
    [color=#401082][color=#000000]	[[/color][color=#b41ca4]super[/color][color=#000000] [/color]viewDidLoad[color=#000000]];[/color][/color]<br />
    <br />
    	[color=#b41ca4]self[/color].[color=#7134aa]title[/color] = [[color=#7134aa]NSString[/color] [color=#401082]stringWithFormat[/color]:[color=#c72c25]@&quot;%@&quot;[/color],[[color=#b41ca4]self[/color] [color=#38595d]path[/color]]];<br />
    <br />
    [color=#401082][color=#000000]	[/color][color=#b41ca4]if[/color][color=#000000] ([[[/color][color=#b41ca4]self[/color][color=#000000] [/color][color=#38595d]path[/color][color=#000000]] [/color]isEqualToString[color=#000000]:[/color][color=#c72c25]@&quot;File Manager&quot;[/color][color=#000000]])[/color][/color]<br />
    	{<br />
    		[[color=#b41ca4]self[/color] [color=#38595d]setPath[/color]:[color=#c72c25]@&quot;/&quot;[/color]];<br />
    	}<br />
    <br />
    [color=#401082][color=#000000]	[[[/color][color=#b41ca4]self[/color][color=#000000] [/color]navigationController[color=#000000]] [/color]setNavigationBarHidden[color=#000000]:[/color][color=#b41ca4]NO[/color][color=#000000] [/color]animated[color=#000000]:[/color][color=#b41ca4]NO[/color][color=#000000]];[/color][/color]<br />
    [color=#401082][color=#000000]	[[[/color][color=#b41ca4]self[/color][color=#000000] [/color]navigationController[color=#000000]] [/color]setToolbarHidden[color=#000000]:[/color][color=#b41ca4]NO[/color][color=#000000] [/color]animated[color=#000000]:[/color][color=#b41ca4]NO[/color][color=#000000]];[/color][/color]<br />
    [color=#7134aa][color=#000000]	[/color][color=#b41ca4]self[/color][color=#000000].[/color]navigationController[color=#000000].[/color]navigationBar[color=#000000].[/color]barStyle[color=#000000]=[/color][color=#401082]UIBarStyleBlack[/color][color=#000000];[/color][/color]<br />
    [color=#7134aa][color=#000000]	[/color][color=#b41ca4]self[/color][color=#000000].[/color]navigationController[color=#000000].[/color]toolbar[color=#000000].[/color]barStyle[color=#000000]=[/color][color=#401082]UIBarStyleBlack[/color][color=#000000];[/color][/color]<br />
    [color=#7134aa][color=#000000]	[/color]UIBarButtonItem[color=#000000] *formButton = [[[/color]UIBarButtonItem[color=#000000] [/color][color=#401082]alloc[/color][color=#000000]][/color][/color]<br />
    								   [color=#401082]initWithTitle[/color]:[color=#c72c25]@&quot;Form&quot;[/color]<br />
    								   [color=#401082]style[/color]:[color=#401082]UIBarButtonItemStyleBordered[/color]<br />
    								   [color=#401082]target[/color]:[color=#b41ca4]self[/color]<br />
    								   [color=#401082]action[/color]:[color=#b41ca4]@selector[/color](accesForm1)];<br />
    [color=#7134aa][color=#000000]	[/color][color=#b41ca4]self[/color][color=#000000].[/color]navigationItem[color=#000000].[/color]rightBarButtonItem[color=#000000]=formButton;[/color][/color]<br />
    <br />
    	[color=#7134aa]UIImage[/color] *image = [[color=#7134aa]UIImage[/color] [color=#401082]imageNamed[/color]:[color=#c72c25]@&quot;Default.png&quot;[/color]];<br />
    [color=#401082][color=#000000]	[/color][color=#b41ca4]self[/color][color=#000000].[/color][color=#578187]gridView[/color][color=#000000].[/color][color=#7134aa]backgroundColor[/color][color=#000000] = [[[/color][color=#7134aa]UIColor[/color][color=#000000] [/color]alloc[color=#000000]] [/color]initWithPatternImage[color=#000000]:image]; [/color][/color]<br />
    [color=#401082]}[/color]<br />
    




    Le problème est que quand je scroll, l'image se répète dans le sens de mon scroll et ne reste pas static. Et franchement c'est moche à  voir.

    Et pareil quand je passe en position horizontale l'image ne suit pas la position elle reste en position verticale et du coup une partie se répète sur (la droite/gauche suivant le sens de la rotation)
  • Sous-classe NRGridView pour ajouter la propriété backgroundView dans ce cas.
  • Daccord donc dans sous-classe NRGridView, dans le .h


    <br />
    [color=#c72c25]<br />
    [color=#73492c]#import [/color]&lt;UIKit/UIKit.h&gt;[/color][color=#c72c25]<br />
    [color=#73492c]#import [/color]&quot;NRGridView.h&quot;[/color]<br />
    <br />
    [color=#b41ca4]@interface[/color] SubNRGridView : [color=#578187]NRGridView[/color]<br />
    [color=#b41ca4]<br />
    @property[color=#000000]([/color]nonatomic[color=#000000], [/color]readwrite[color=#000000], [/color]retain[color=#000000]) [/color][color=#7134aa]UIView[/color][color=#000000] *backgroundView;[/color][/color]<br />
    [color=#b41ca4]<br />
    @end[/color][color=#b41ca4]<br />
    
    [/color]



    Après je vois pas comment faire dans le .m ?
  • mai 2012 modifié #55
    Un truc du genre:


    <br />
    @synthesize backgroundView = _backgroundView;<br />
    <br />
    - (void)setBackgroundView:(UIView*)backgroundView<br />
    {<br />
    if(_backgroundView &#33;= backgroundView)<br />
    {<br />
    [self willChangeValueForKey:@&quot;backgroundView&quot;];<br />
    <br />
    [_backgroundView removeFromSuperview];<br />
    [_backgroundVIew release];<br />
    _backgroundView = [backgroundView retain];<br />
    <br />
    if([self superview] &amp;&amp; backgroundView &#33;= nil)<br />
    [self setNeedsLayout];<br />
    <br />
    [self didChangeValueForKey:@&quot;backgroundView&quot;];<br />
    }<br />
    }<br />
    <br />
    <br />
    - (void)layoutSubviews<br />
    {<br />
    [super layoutSubviews];<br />
    <br />
    if([self backgroundView] &#33;= nil)<br />
    {<br />
    CGRect backgroundViewFrame = [self bounds];<br />
    backgroundViewFrame.origin.y = [self contentOffset].y;<br />
    <br />
    [[self backgroundView] setFrame:backgroundViewFrame];<br />
    }<br />
    }<br />
    <br />
    - (void)dealloc<br />
    {<br />
    [_backgroundView release];<br />
    [super dealloc];<br />
    }<br />
    <br />
    




    Désolé pour l'indentation mais CTRL ALT Tab n'a pas l'air d'être pris en compte...
  • Merci
  • Heuuu, juste une petite question, en sous classant NRGridView pour rajouter le propriéter backgroundView.

    Du coup j'imagine que dans mon ViewController ou je travaille initialement avec NRGridView, je vais du coup travailler exclusivement avec la sous classe créer ?

    Sinon j'imagine que les modification apporté en sous classant NRGridView, je peux les importer directement dans le framework NRGridView dans les classes NRGridView.h et NRGridView.m avant de builder le framework ? Sa marche aussi ?
  • Salut, cela fait un petit moment que je me creuse la tête, pour ce backgroundView du coup j'ai fait une sous-classe de NRGridView, (SubNRGridView), OK!



    Du coup dans mon viewController qui hérite de NRGridViewContreller et implémente NRGridViewDelegate, je vois pas a quel moment dire que l'objet avec lequel je construit et je travaille ma grille (self.gridView) de type NRGridView, que je veux du coup travailler exclusivement avec un objet de type SubNRGridView.



    Est ce que je dois modifié le NRGridViewController du framework ? Ou bien j'ai raté une étape ?
  • Ou alors réécrire NRGridViewController ?
  • muqaddarmuqaddar Administrateur
    Salut,



    J'utilise la NRGridView avec une seule cell affichée à  la fois, en mode vertical.

    Marche très bien également.



    Y-a-til moyen de forcer le scroll à  se positionner sur une seule cellule à  la fois lorsque l'on scrolle ? Il ne pourrait donc pas y avoir 2 cellules à  cheval lorsque l'on a lâché le scroll.



    Il faudrait que le scroll se positionne sur la cellule qui a le plus de surface affichée à  l'écran par défaut.



    Il y a bien tes 2 méthodes:





    - (void)scrollRectToSection:(NSInteger)section

    animated:(BOOL)animated

    scrollPosition:(NRGridViewScrollPosition)scrollPosition;



    - (void)scrollRectToItemAtIndexPath:(NSIndexPath*)indexPath

    animated:(BOOL)animated

    scrollPosition:(NRGridViewScrollPosition)scrollPosition;



    mais je ne vois pas comment ne pas les utiliser pour que ce comportement soit automatique.



    Est-ce que c'est possible? Faut-il sous-classer NRGridView pour détecter quand le scroll est lâché et agir en conséquence ?
  • AliGatorAliGator Membre, Modérateur
    Dans UICollectionView de iOS6 c'est possible ^^ [just trolling]
Connectez-vous ou Inscrivez-vous pour répondre.