Dans mon application, j'utilise du code, d'ajouter de manière dynamique des boutons avec des images à un mais cela ne fonctionne pas bien: P > p> Si j'essaie de définir un autre style de bouton: P > uitoolbar code>:
toolButton1.style = UIBarButtonSystemItemFlexibleSpace;
toolButton2.style = UIBarButtonSystemItemFlexibleSpace;
toolButton3.style = UIBarButtonSystemItemFlexibleSpace;
3 Réponses :
Ajoutez deux boutons de barres d'addition qui utilisent le style système C'est bizarre de conceptualiser, mais le flexible L'espace est en fait un objet distinct et non un style à appliquer à d'autres objets. P> p> uibarbuttonsystemitemflexiblespace code> et placez un entre chacun de vos boutons existants:
Bonne réponse, mais la note latérale est incorrecte. Le suffixe @ 2x code> fonctionne parfaitement avec ou sans spécifier l'extension
.png code>. En fait, l'extension est requise si ce n'est pas
.png code> (il est possible d'utiliser
@ 2x code> jpeg images).
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]];
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; }
Vous voudrez peut-être consulter: Stackoverflow.com / Questions / 8643501 / ...