Séparateur dans un UIPickerView

Bonjour,



J'utilise souvent les UIPickerView pour saisir plusieurs choses en une seule fois comme dans la saisie de :

- "5 sacs" avec 2 components

- "500 g" avec 4 components



Dans l'exemple 2, pour améliorer la lisibilité, j'aimerai qu'il y ait un espace, entre les 3 premiers tambours(components) et le dernier tambour de l'unité de mesure.



D'où ma question :

Est-il possible de paramétrer l'écart entre les tambours(component) d'un UIPickerView ?



Aujourd'hui, pour générer cet écart, j'ajoute un tambour avec une seul row contenant un caractère blanc.

Je préfèrerais un écart.



Merci d'avance pour vos pistes.

Réponses

  • Bonjour,



    Si j'ai bien t'a question tu peux utiliser :





    rowSizeForComponent:



    Returns the size of a row for a component.[font=Courier, Consolas, monospace]

    - (CGSize)rowSizeForComponent:(NSInteger)component
    [/font]



    Parameters

    component

    A zero-indexed number identifying a component.




    Return Value



    The size of rows in the given component. This is generally the size required to display the largest string or view used as a row in the component.




    Discussion



    A picker view fetches the value of this property by calling the pickerView:widthForComponent: andpickerView:rowHeightForComponent: delegate methods, and caches it. The default value is (0, 0).


    Availability
    • Available in iOS 2.0 and later.
  • NON image/smile.png' class='bbc_emoticon' alt=':)' /> peut être me suis je pas bien exprimé

    Je ne parle pas de la taille de la cellule comme la doc que tu me copie/colle, mais de l'écart entre les tambours...



    Par moment suivant la quantité d'infos des components, même si on crée un tambour plus large, ou si on crée un tambour vide, il me semble que c'est moins lisible que si on écarte les tambours.

    Cet écart est très possible avec des Framework de simulation iPhone en WebApp, comme iWebKit.



    J'ai l'impression qu'il n'est pas possible de les décoller les uns des autres et qu'ils sont toujours collés

    Pas grave si c'est pas possible en natif... j'espérais...
  • Peut être le framework de notre très cher Ali : https://github.com/AliSoftware/OHSwipeWheel
  • AliGatorAliGator Membre, Modérateur
    OHSwipeWheel date d'une eternité je ne sais même pas s'il fonctionne encore ^^



    Sinon pour ta question moi je ferais tout simplement une UIView custom pour le component des unités, qui consisterait en une simple UIView contenant une image de bordure à  gauche par exemple, et un label pour affiche le texte de la row du component.

    Avec les méthodes de delegate de UIPickerView on peut facilement faire tout cela, et cela te permettrait de personnaliser le look de ta roue pour les unités, la rendre plus large, y dessiner dedans une séparation plus grande, etc, etc.
  • Merci, pour cette piste.



    J'attendais pour essayer une implémentation de ce type, que je me confirme qu'aucune méthode n'existaient de base dans l'objet fournie par Apple, pour avoir un écartement différent de zéro pixel.



    Je reste cependant persuadé que toute UIView (même contenant une image de bordure + etc) sera contenue dans une des roulettes du Picker, mais faut que j'essaye...



    Je reviens ici, si ca provoque bien un écart entre les roulettes du picker et non pas un simple élargissement de la roulette dans laquelle les UIView ont été insérée ...



    ++ image/smile.png' class='bbc_emoticon' alt=':)' />
  • AliGatorAliGator Membre, Modérateur
    Hein ?! Heu mais évidemment que les UIView seront dans ne des roulettes et évidemment que tu vas élargir ta roulette pour y mettre une UIView plus large, incluant dans son design les bordures, mais en quoi c'est un problème vu que graphiquement ça fera ce que tu cherches à  faire ?
  • image/smile.png' class='bbc_emoticon' alt=':)' />

    Ben... si je veux simplement élargir un component, en ayant le look que je désire (couleur, police, image....etc), j'utilise viewForRow et widthForComponent ... ce que je fais déja dans toutes mes appli ...



    Je pensais, peut-être, trouver une méthode pour instancier un écartement en pixel entre les roulettes.

    Pas grave ca semble ne pas exister



    Merci AliGator d'avoir répondu.
Connectez-vous ou Inscrivez-vous pour répondre.