2 Stimmen

Stil Segmentierte Steuerungsschaltflächen auf dem iPhone?

Ist es möglich, den Stil von iPhone-Native-Buttons zu ändern? Zum Beispiel würde ich gerne eine kleinere Schriftgröße für einen Teil des Buttontextes verwenden und eine größere für einen anderen - so etwas wie

wähle eineFarbe

Ich würde auch gerne Buttons verwenden, die eine Pfeilform bilden anstatt rechteckig zu sein. So etwas wie:

---------------------------------
\ Farbe  \   Größe    \    Form   \
/        /           /           /
----------------------------------

Ist das irgendwie möglich?

2voto

Paxic Punkte 1760

Die einfachste Option ist die Verwendung von abgerundeten Rechteck-Schaltflächen mit benutzerdefinierten Bildern, leider erfüllt dies nicht Ihre Anforderung an einen anpassbaren Text (außer wenn Sie Bilder für jede Größe haben).

  • Fügen Sie eine abgerundete Rechteck-Schaltfläche zur Ansicht hinzu

  • In der Inspektion:
    - ändern Sie den Typ auf "Benutzerdefiniert"
    - setzen Sie den Hintergrund auf das Bild Ihrer neuen Schaltfläche
    - platzieren Sie den Text im Feld "Titel"

Verwenden Sie unbedingt den Hintergrund für Ihr Schaltflächenbild, wenn Sie die Texteigenschaft der Schaltfläche verwenden möchten (Titel)

1voto

Adam Rosenfield Punkte 373807

Ich glaube nicht, dass du es einfach machen kannst. Du wirst wahrscheinlich UISegmentedControl untergeordnet machen müssen und eine Reihe von Methoden überschreiben. Um unterschiedlich große Schriftarten auf dem Schaltflächentext zu erhalten, musst du mehrere UILabels als untergeordnete Ansichten erstellen und jedem den entsprechenden Text und Schriftgröße geben und sie dann anordnen. Um die Pfeilform zu erhalten, musst du die Methode drawRect: überschreiben, um den Hintergrund des Steuerungselements zu zeichnen.

0voto

Jan S. Punkte 10178

Sie könnten eine UIView untergeordnet machen und mehrere UIButtons übereinander stapeln. Um jedes Button eine Pfeilform zu geben, könnten Sie einfach ein dehnbares Bild verwenden und den Hintergrund der UIButtons auf dieses UIImage setzen:

UIImage* buttonImage =[[UIImage imageNamed="arrowImage.png"] 
       stretchableImageWithLeftCapWidth=5.0 topCapHeight=0.0];

Hier ist ein guter Ausgangspunkt: https://github.com/boctor/idev-recipes/tree/master/CustomSegmentedControls

Ich habe damit gespielt und modifiziert, um die Breite jedes Segments anpassen zu können und einige andere Anpassungen vorzunehmen. Hier ist mein Fork: https://github.com/janfsd/idev-recipes/tree/master/CustomSegmentedControls

Sie könnten eines dieser weiter anpassen, um einen Textgrößenparameter pro Button zu akzeptieren, um Ihren Anforderungen gerecht zu werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X