8
votes

Comment distribuer des boutons long de longueur dans Uitoolbar?

Dans mon application, j'utilise du code, d'ajouter de manière dynamique des boutons avec des images à un uitoolbar code>: xxx pré>

mais cela ne fonctionne pas bien: P >

capture d'écran p>

Si j'essaie de définir un autre style de bouton: P >

toolButton1.style = UIBarButtonSystemItemFlexibleSpace;
toolButton2.style = UIBarButtonSystemItemFlexibleSpace;
toolButton3.style = UIBarButtonSystemItemFlexibleSpace;


1 commentaires

Vous voudrez peut-être consulter: Stackoverflow.com / Questions / 8643501 / ...


3 Réponses :


11
votes

Ajoutez deux boutons de barres d'addition qui utilisent le style système uibarbuttonsystemitemflexiblespace et placez un entre chacun de vos boutons existants: xxx

C'est bizarre de conceptualiser, mais le flexible L'espace est en fait un objet distinct et non un style à appliquer à d'autres objets.


1 commentaires

Bonne réponse, mais la note latérale est incorrecte. Le suffixe @ 2x fonctionne parfaitement avec ou sans spécifier l'extension .png . En fait, l'extension est requise si ce n'est pas .png (il est possible d'utiliser @ 2x jpeg images).



3
votes

Vous devez utiliser des espaces flexibles pour que les boutons distribuent le long de la longueur de votre barre d'outils. Avant les boutons, entretenez chaque bouton, et après vos boutons, vous devez avoir un bouton d'espace flexible. (UIBARBUTTONSYTEMITEMFLEXIBRESPACELS)

[self setToolbarItems:[NSArray arrayWithObjects:toolButton1, flexibleSpaceBtn1, toolButton2, flexibleSpaceBtn2, toolButton3, nil]];


0 commentaires

0
votes

Voici quelques indicites de référence que j'utilise -

//Constants
let imageNames : [String] = ["img1.png", ... "imgN.png"];

/********************************************************************************/
/** @fcn        spacingDemo()
 *  @brief      space all toolbar items evenly across the UIToolbar on keyboard
 *
 *  @param      [in] (UITextView) textView : view to attach keyboard to in response
 */
/********************************************************************************/
func spacingDemo() {

    //Vars
    var barButtons : [UIBarButtonItem];
    var button : UIButton;
    var img    : UIImage;

    //Init
    keyboardToolbar = UIToolbar();
    barButtons      = [UIBarButtonItem]();

    //Config
    keyboardToolbar.barTintColor = UIColor.lightGray;   /* set bkgnd color      */
    let flexBarButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil);
    barButtons.append(flexBarButton);                   /* size-to-fit          */

    for imageName in imageNames {

        //Gen Button
        button = UIButton(type: .custom);
        button.setImage(UIImage(named: imageName), for: .normal);
        button.addTarget(self, action:  #selector(self.keyboardResponse), for: .touchUpInside);
        barButtons.append(UIBarButtonItem(customView: button));

        //Apply Spacing
        let flexBarButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil);
        barButtons.append(flexBarButton);               /* size-to-fit          */
    }

    //Assemble
    keyboardToolbar.items = barButtons;

    //Attach
    textView.inputAccessoryView = keyboardToolbar;

    //Cleanup
    keyboardToolbar.sizeToFit();

    return;
}


0 commentaires