Wie kann ich eine Schaltfläche erstellen mit der Hintergrundfarbe für die tvOS, während noch zeigen, konzentrieren?
Alles was ich will zu tun ist, fügen Sie eine Hintergrundfarbe für eine Schaltfläche für alle Staaten. Aber ich will pflegen der automatische Fokus Schatten, die Sie bekommen "kostenlos" bei Verwendung eines system-Schaltfläche in der tvOS
storyboard. So weit ich habe nicht in der Lage zu finden, eine Kombination, der dies ermöglicht.
Alternativ hätte ich auch Interesse an einer Möglichkeit, programmgesteuert fügen Sie die Schatten, wenn der button fokussiert ist, sondern kurz von Unterklassen Sie die Taste (die ich noch nicht ausprobiert), ich weiß nicht, wie zu tun, dass entweder.
- Der Grund dies ist besonders frustrierend ist, dass, wenn Sie fügen Sie die Schatten, die programmgesteuert sind, verlieren Sie all die coolen halb-motion bounciness.
- Ein apple-Ingenieur (auf den dev-Foren) gesagt, Sie können reproduzieren die Bewegung mit der neuen
UIMotionEffect
API: developer.apple.com/library/prerelease/tvos/documentation/UIKit/... ich bin mir nicht sicher wie, aber ich könnte mit ihm spielen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überschreiben
didUpdateFocusInContext
Methode und überprüfen Sie, ob neben der Fokus-Ansicht ist die Schaltfläche, wenn ja, dann passen Sie Ihre Benutzeroberfläche an, und stellen Sie ihn zurück auf orignal Zustand überprüfencontext.previousFocusedView
wurde, die Taste, so etwas wie untenKönnen Sie einen Schatten für Ihre benutzerdefinierte Schaltfläche wie diese:
War nicht zufrieden mit einer einfachen Farbe zu ändern, also machte ich eine benutzerdefinierte Schaltfläche Unterklasse zu sehen eher aus wie die Standard-animation, die Sie bekommen mit den system-Tasten -
Nichts zu kompliziert, aber bekommt den job getan
Die Ultimative Lösung, mit der inspiration von SomaMan. Nur Unterklasse alle benutzerdefinierten Schaltflächen und Sie Erhalten diese:
enthält: Tippen Sie auf animation und release, und ziehen Weg.
Habe ich etwas gefunden, besser:
Swift 4 /tvOS11 und besser:
Legen Sie die ButtonType in der Interface-Builder " Schaltfläche-Eigenschaften "Plain".
Fügen Sie diese private-Erweiterung, um Ihre Klasse:
Dann in Ihr verbunden IBOutlet legen Sie das Hintergrundbild für den fokussierten Zustand des Buttons:
Können Sie die
UIButton
MethodesetBackgroundImage(image: UIImage?, forState state: UIControlState)
und passieren Sie durch ein Bild, das eine flache Farbe und der Zustand.Normal
.Dieses Bild kann leicht erstellt werden, programmgesteuert von einem
UIColor
und eine Größe von 1x1:Können Sie den hintergrund Bild im storyboard zu einem Bild, das die Farbe enthält, die Sie möchten,