Gestionnaire de fichier

yass_1988yass_1988 Membre
mai 2012 modifié dans Vos applications #1
Bonjour à  tous,



voila, j'ai une réflexion à  vous soumettre:



J'ai un dictionnaire qui référence une multitude de dossier et de fichier, chacun est référence par une clé unique et il on pour valeur chacun un tableau contenant trois Objets:



J'ai un dictionnaire qui représente une multitude de dossier et de fichier. Chacun de ces objet sont caractérisé par un tableau:

[ (NSString *) titre_du_fichier_ou_dossier,(NSString*) type_du_fichier_ou_dossier,(UIIImage)icône_du_fichier_ou_dossier] et ils sont associés à  une clé.



Et je souhaiterais qu'au lancement de ma vue, je puisse organiser l'affichage de mes fichier et dossier dans ce style là :



L'Icone

Titre



En gros organiser un affichage dans un tableau[4,x] , transparent, avec un peu d'espacement entre chaque fichier et dossier. Chaque fichier ou dossier est représenter par son icône et son titre juste au dessous.



L'idée est d'avoir une représentation "scrolable" et que chaque icône puisse engendrer 1 action pour un clique-long , mais aussi qu'il puisse être juste sélectionnante (clic-court), histoire d'engendrer une autre action avec un bouton qui se trouve sur mon navigationBar.



Des idées, un début de réflexion ?

Merci pour votre aide

Réponses

  • Visiblement UITableView serait un début de réflexion, mais sur le peu que j'ai lu, on ne peut avoir qu'une seule colonnes image/huh.gif' class='bbc_emoticon' alt='???' />

    Bref je ne sais pas ou donner de la tête pour ça.
  • AliGatorAliGator Membre, Modérateur
    Ta question est un peu trop vaste... tu demandes un peu tout...



    Enfin pour afficher des cellules en forme de grille, recherche sur le forum, on a déjà  proposé des solutions, genre NRGridView & co...
  • et OHGridView (je complète image/biggrin.png' class='bbc_emoticon' alt=':D' />)
  • yass_1988yass_1988 Membre
    mai 2012 modifié #5
    Pour Ali:



    Voila ce que j'ai fait pour installer le framework "OHGridView":



    1) Téléchargement du code sur GitHub



    2) Ouverture du projet OHGridView.xcodeproj du dossier OHGridView



    3) Choix de Universal Framework --> iPhone 5.1 Simulator



    4) Je Run





    5) j'ai bien un dossier Products avec OHGridView.framework dedans

    6) J'ouvre mon projet (un projet ARC)

    7) Dans Targets vht2 --> Build Phases --> Link Binaries with Libraries --> je clique sur plus et j'ajoute le dossier OHGridView

    8) Run: Parfais pas d'erreur ou d'avertissement



    9)J'implémente la procédure d'Ali sur GitHub dans mon AppViewController



    10)Je run et là  Aà¯e deux erreur !!!!!!!




    Ld /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-bkyatyzyvjywebgwaogyqptlgiox/Build/Products/Debug-iphonesimulator/vht2.app/vht2 normal i386

    cd /Users/ybadih/Desktop/vht2

    setenv MACOSX_DEPLOYMENT_TARGET 10.6

    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk -L/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-bkyatyzyvjywebgwaogyqptlgiox/Build/Products/Debug-iphonesimulator -F/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-bkyatyzyvjywebgwaogyqptlgiox/Build/Products/Debug-iphonesimulator -F/Users/ybadih/Desktop/vht2 -F/Users/ybadih/Desktop/vht2/../../Downloads/AliSoftware-OHGridView-df6d45b/OHGridView/Products -filelist /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-bkyatyzyvjywebgwaogyqptlgiox/Build/Intermediates/vht2.build/Debug-iphonesimulator/vht2.build/Objects-normal/i386/vht2.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=50100 -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-bkyatyzyvjywebgwaogyqptlgiox/Build/Products/Debug-iphonesimulator/vht2.app/vht2



    Undefined symbols for architecture i386:

    "_OBJC_CLASS_$_OHGridViewCell", referenced from:

    objc-class-ref in AppViewController.o

    ld: symbol(s) not found for architecture i386

    clang: error: linker command failed with exit code 1 (use -v to see invocation)



    "_OBJC_CLASS_$_OHGridViewCell", referenced from:

    objc-class-ref in AppViewController.o

    ld: symbol(s) not found for architecture i386

    clang: error: linker command failed with exit code 1 (use -v to see invocation)






    Et voici mon fichier .h :
    #import &lt;UIKit/UIKit.h&gt;<br />
    #import &quot;OHGridView/OHGridView.h&quot;<br />
    @interface AppViewController : UIViewController&lt;UIAlertViewDelegate,OHGridViewDelegate,OHGridViewDataSource&gt;{<br />
    }<br />
      <br />
    @end
    


    et mon .m:
    <br />
    <br />
    [color=#C72C25][color=#73492C]#import [/color]&quot;AppViewController.h&quot;[/color]<br />
    <br />
    [color=#B41CA4]@implementation[/color] AppViewController<br />
    <br />
    <br />
    - ([color=#B41CA4]id[/color])initWithNibName:([color=#7134AA]NSString[/color] *)nibNameOrNil bundle:([color=#7134AA]NSBundle[/color] *)nibBundleOrNil<br />
    {<br />
    	[color=#B41CA4]self[/color] = [[color=#B41CA4]super[/color] [color=#401082]initWithNibName[/color]:nibNameOrNil [color=#401082]bundle[/color]:nibBundleOrNil];<br />
    	[color=#B41CA4]if[/color] ([color=#B41CA4]self[/color]) {<br />
    [color=#1C8600][color=#000000]		[/color]// Custom initialization[/color]<br />
    	}<br />
    [color=#B41CA4][color=#000000]	[/color]return[color=#000000] [/color]self[color=#000000];[/color][/color]<br />
    }<br />
    <br />
    <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=#578187][color=#000000]	[/color]CondSyncBrowse[color=#000000]=[[[/color][color=#7134AA]NSCondition[/color][color=#000000] [/color][color=#401082]alloc[/color][color=#000000]][/color][color=#401082]init[/color][color=#000000]];[/color][/color]<br />
    [color=#1C8600][color=#000000]	[/color]//finishedSyncBrowse=NO;[/color]<br />
    <br />
    [color=#7134AA][color=#000000]	(([/color]OHGridView[color=#000000] *)[/color][color=#B41CA4]self[/color][color=#000000].[/color]view[color=#000000]).[/color]rowHeight[color=#000000]=[/color][color=#3D01D9]50[/color][color=#000000];[/color][/color]<br />
    [color=#7134AA][color=#000000]	(([/color]OHGridView[color=#000000] *)[/color][color=#B41CA4]self[/color][color=#000000].[/color]view[color=#000000]).[/color]columnsCount[color=#000000]=[/color][color=#3D01D9]4[/color][color=#000000];[/color][/color]<br />
    [color=#1C8600][color=#000000]	 [/color]// Do any additional setup after loading the view.[/color]<br />
    }<br />
    <br />
    <br />
    <br />
    <br />
    <br />
    -([color=#7134AA]NSUInteger[/color])numberOfItemsInGridView:([color=#7134AA]OHGridView[/color] *)aGridView {<br />
    [color=#B41CA4]return[color=#000000] [/color][color=#3D01D9]1[/color][color=#000000];[/color][/color]<br />
    }<br />
    <br />
    <br />
    <br />
    <br />
    -([color=#7134AA]OHGridViewCell[/color]*)gridView:([color=#7134AA]OHGridView[/color] *)aGridView cellAtIndexPath:([color=#7134AA]NSIndexPath[/color] *)indexPath {<br />
    	[color=#7134AA]OHGridViewCell[/color]* cell = [aGridView [color=#401082]dequeueReusableCell[/color]];<br />
    	[color=#B41CA4]if[/color] (&#33;cell) {<br />
    		cell = [[color=#7134AA]OHGridViewCell[/color] [color=#401082]cell[/color]];<br />
    <br />
    [color=#1C8600][color=#000000]		[/color]// First simple way to set a backgrounf[/color]<br />
    [color=#1C8600][color=#000000]		[/color]//cell.backgroundColor = [UIColor grayColor]; // One way[/color]<br />
    <br />
    [color=#1C8600][color=#000000]		[/color]// Another way, using custom view (so you may also user an UIImageView or whatever you need[/color]<br />
    [color=#7134AA][color=#000000]		cell.[/color]backgroundView[color=#000000] = ([[[/color]UIView[color=#000000] [/color][color=#401082]alloc[/color][color=#000000]] [/color][color=#401082]initWithFrame[/color][color=#000000]:[/color]CGRectZero[color=#000000]]);[/color][/color]<br />
    [color=#7134AA][color=#000000]		cell.[/color]backgroundView[color=#000000].[/color]backgroundColor[color=#000000] = [[/color]UIColor[color=#000000] [/color][color=#401082]colorWithRed[/color][color=#000000]:[/color][color=#3D01D9]0.5f[/color][color=#000000] [/color][color=#401082]green[/color][color=#000000]:[/color][color=#3D01D9]0.8f[/color][color=#000000] [/color][color=#401082]blue[/color][color=#000000]:[/color][color=#3D01D9]0.5f[/color][color=#000000] [/color][color=#401082]alpha[/color][color=#000000]:[/color][color=#3D01D9]1.f[/color][color=#000000]];[/color][/color]<br />
    <br />
    [color=#7134AA][color=#000000]		cell.[/color]selectedBackgroundView[color=#000000] = ([[[/color]UIView[color=#000000] [/color][color=#401082]alloc[/color][color=#000000]] [/color][color=#401082]initWithFrame[/color][color=#000000]:[/color]CGRectZero[color=#000000]]);[/color][/color]<br />
    [color=#7134AA][color=#000000]		cell.[/color]selectedBackgroundView[color=#000000].[/color]backgroundColor[color=#000000] = [[/color]UIColor[color=#000000] [/color][color=#401082]colorWithRed[/color][color=#000000]:[/color][color=#3D01D9]0.5f[/color][color=#000000] [/color][color=#401082]green[/color][color=#000000]:[/color][color=#3D01D9]0.5f[/color][color=#000000] [/color][color=#401082]blue[/color][color=#000000]:[/color][color=#3D01D9]0.8f[/color][color=#000000] [/color][color=#401082]alpha[/color][color=#000000]:[/color][color=#3D01D9]1.f[/color][color=#000000]];[/color][/color]<br />
    	}<br />
    <br />
    [color=#1C8600][color=#000000]	[/color]//NSUInteger i = [aGridView indexForIndexPath:indexPath];[/color]<br />
    [color=#1C8600][color=#000000]	[/color]//NSString* itemName = [items objectAtIndex:i];[/color]<br />
    	cell.[color=#7134AA]textLabel[/color].[color=#7134AA]text[/color] = [color=#C72C25]@&quot;icone test&quot;[/color];<br />
    [color=#1C8600][color=#000000]	[/color]//cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@&quot;%@-64x64.png&quot;,itemName]];[/color]<br />
    [color=#7134AA][color=#000000]	cell.[/color]imageView[color=#000000].[/color]image[color=#000000] = [[/color]UIImage[color=#000000] [/color][color=#401082]imageNamed[/color][color=#000000]:[/color][color=#C72C25]@&quot;wfm_albums_dir.png&quot;[/color][color=#000000]];[/color][/color]<br />
    	[color=#B41CA4]return[/color] cell;<br />
    }<br />
    <br />
    <br />
    <br />
    <br />
    <br />
    -([color=#B41CA4]void[/color])gridView:([color=#7134AA]OHGridView[/color] *)aGridView didSelectCellAtIndexPath:([color=#7134AA]NSIndexPath[/color] *)indexPath {<br />
    [color=#1C8600]//NSUInteger idx = [aGridView indexForIndexPath:indexPath];[/color]<br />
    [color=#1C8600]//NSString* msg = [items objectAtIndex:idx];[/color]<br />
    [color=#7134AA]UIAlertView[color=#000000]* alert = ([[[/color]UIAlertView[color=#000000] [/color][color=#401082]alloc[/color][color=#000000]] [/color][color=#401082]initWithTitle[/color][color=#000000]:[/color][color=#C72C25]@&quot;Tap&quot;[/color][/color]<br />
    													 [color=#401082]message[/color]:[color=#C72C25]@&quot;test&quot;[/color]<br />
    													[color=#401082]delegate[/color]:[color=#B41CA4]self[/color]<br />
    										   [color=#401082]cancelButtonTitle[/color]:[color=#C72C25]@&quot;OK&quot;[/color]<br />
    										   [color=#401082]otherButtonTitles[/color]:[color=#B41CA4]nil[/color]]);<br />
    [alert [color=#401082]show[/color]];<br />
    }<br />
    <br />
    <br />
    <br />
    <br />
    -([color=#B41CA4]void[/color])alertView:([color=#7134AA]UIAlertView[/color] *)alertView didDismissWithButtonIndex:([color=#7134AA]NSInteger[/color])buttonIndex {<br />
    [color=#401082][color=#000000][([/color][color=#7134AA]OHGridView[/color][color=#000000]*)[/color][color=#B41CA4]self[/color][color=#000000].[/color][color=#7134AA]view[/color][color=#000000] [/color]deselectSelectedCellsAnimated[color=#000000]:[/color][color=#B41CA4]YES[/color][color=#000000]];[/color][/color]<br />
    }<br />
    <br />
    <br />
    <br />
    <br />
    - ([color=#B41CA4]BOOL[/color])shouldAutorotateToInterfaceOrientation:([color=#7134AA]UIInterfaceOrientation[/color])interfaceOrientation<br />
    {<br />
    [color=#1C8600][color=#000000]	[/color][/color]<br />
    [color=#B41CA4][color=#000000]	[/color]return[color=#000000] [/color]YES[color=#000000];[/color][/color]<br />
    }<br />
    <br />
    <br />
    <br />
    - ([color=#B41CA4]void[/color])willAnimateRotationToInterfaceOrientation:([color=#7134AA]UIInterfaceOrientation[/color])interfaceOrientation duration:([color=#7134AA]NSTimeInterval[/color])duration {<br />
    	(([color=#7134AA]OHGridView[/color]*)[color=#B41CA4]self[/color].[color=#7134AA]view[/color]).[color=#7134AA]columnsCount[/color] = [color=#73492C]UIInterfaceOrientationIsPortrait[/color](interfaceOrientation) ? [color=#3D01D9]2[/color] : [color=#3D01D9]4[/color];<br />
    }<br />
    <br />
    <br />
    <br />
    <br />
    - ([color=#B41CA4]void[/color])viewDidUnload <br />
    {<br />
    [color=#401082][color=#000000]	[[/color][color=#B41CA4]super[/color][color=#000000] [/color]viewDidUnload[color=#000000]];[/color][/color]<br />
    [color=#1C8600][color=#000000]	[/color]// Release any retained subviews of the main view.[/color]<br />
    }<br />
    <br />
    <br />
    [color=#B41CA4]@end
    
    [/color]



    Ou se trouve le problème image/huh.gif' class='bbc_emoticon' alt='???' />?
  • AliGatorAliGator Membre, Modérateur
    Tu as bien buildé et pris le Universal Framework, qui contient la lib à  la fois pour l'architecture i386 (celle du simulateur iPhone) et armv7 (celle du vrai device) ?

    Si tu compiles pour device au lieu de simulateur, ça te fait la même erreur ?
  • Bein en faite qu'on j'ai pris le Universal Framework j'avais au chois (device iOS, [font=helvetica, arial, sans-serif] iPhone 5.1 Simulator, [/font][font=helvetica, arial, sans-serif] iPad 5.1 Simulator), par défaut le Universal Framework étais sur "device iOS" et du cou je l'ai mis sur [/font][font="helvetica, arial, sans-serif"] "iPhone 5.1 Simulator". Mais en plus de Universal Framework j'avais aussi OHGridView qui étais lui aussi par défaut sur "device iOS", par contre lui je l'ai pas touché.[/font]



    [font=helvetica, arial, sans-serif]Quand tu dis bien buildé, tu veux dire par là , appuyé sur la touche Run après le choix du Universal Framework ? Si c'est cela oui ! car après, un dossier Products a été créer et à  l'intérieur, mon framework "OHGridView.framework".[/font]



    [font=helvetica, arial, sans-serif]Je peux pas compilé pour le moment (Pas le MAC avant demain).[/font]

    [font=helvetica, arial, sans-serif]Sinon comment sait on si le Universal Framework contient [/font][font=helvetica, arial, sans-serif] la lib à  la fois pour l'architecture i386 (celle du simulateur iPhone) et armv7 (celle du vrai device) sans compilé ?[/font]
  • Sachant que moi je teste mes programmes sur un simulator.

    (Enfin pour le moment en attendant que j'ai un peu de sous pour souscrire au programme de dév.)
  • lol je recompile ce matin sans rien avoir modifié et je me retrouve du coup qu'avec un seul warning:



    warning: (i386) /Users/ybadih/Downloads/AliSoftware-OHGridView-df6d45b/OHGridView/build/OHGridView.build/Release-iphonesimulator/OHGridView.build/Objects-normal/i386/OHGridView.o unable to open object file
  • En faite Ali, j'ai l'impression que ton framework on peut pas le tester sur un simulator.
  • AliGatorAliGator Membre, Modérateur
    Hello



    Honnêtement je suis pas mal débordé ces derniers temps et je ne pourrais pas trop regarder en détail pour t'aider pour ton souci.

    Mais le framework a été fait comme habituellement quand on fait des Frameworks pour iOS :

    - Un target qui compile en architecture i386 pour le simulateur

    - Un target qui compile en architecture armv6, armv7 pour le device

    - Un target special (type script) qui fait la fusion des deux binaires, pour créer un object file avec toutes les architectures, utilisable invariablement sur simulateur ou sur iOS donc.



    D'où ma question de savoir si tu avais bien compilé le bon target, celui qui compile les 2 autres et fait un "lipo" ensuite entre les deux pour avoir un framework universel (simu/device), et pas compilé seulement un des deux.

    Vu qu'il te dit qu'il n'arrive pas à  ouvrir l'object file se trouvant dans ".../[font=helvetica, arial, sans-serif]OHGridView.build/Objects-normal/i386/OHGridView.o", il m'a l'air de chercher directement l'object file pour i386 au lieu du universel... ?![/font]
  • yass_1988yass_1988 Membre
    mai 2012 modifié #12
    Bein du coup, moi quand j'ouvre OHGridView.xcodeproj, dans schème je fais Universal Framework > iPhone 5.1 Simulator et rien d'autre.

    Et j'ai remarqué aussi que dans la fenêtre principal dans le coté gauche, j'ai



    Project:

    OHGridView



    TARGETS:

    OHGridView

    Universal Framework



    Avec pour chacun son info, Build Settings ....



    Y a une autre manip à  faire pour compiler le bon target ?
  • yass_1988yass_1988 Membre
    mai 2012 modifié #13
    ha !!!!!! depuis ce matin, je me prend la tête à  installer ce framework correctement.

    Qui plus est c'est pile poil ce que j'avais besoin pour organiser l'affichage de mes fichiers.

    Quelqu'un pour m'aider ? SVP?
Connectez-vous ou Inscrivez-vous pour répondre.