isHidden mit "Animation"

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • isHidden mit "Animation"

    Guten Abend Zusammen,

    ich habe heute eine Frage zur isHidden Funktion in Swift.
    Ist es möglich das einblenden zu "Animieren"?
    Also langsamer einzublenden und nicht plötzlich?

    Mein aktueller Code beim klicken auf einen Button:

    Quellcode

    1. if locale.regionCode == "DE"
    2. {
    3. RezeptDeutsch.isHidden = false
    4. BeschreibungDeutsch.isHidden = false
    5. RezeptWerbungDeutschTortelini.isHidden = false
    6. }
    7. ...
    Grüße,
    Ferdi :thumbup:
  • Ich wuerde mir wahrscheinlich ein Sperrfläche bauen, die dem Button komplett abdecken kann.

    Feature: button-disappear

    - Sperrfläche (View, CALayer) mit 0.0 alpha hinzufügen > der Button kann ab jetzt nicht mehr betätigt werden
    - Sperrfläche alpha auf 1.0 animieren

    Feature: button-appear

    - Sperrfläche alpha auf 0.0 animieren
    - Sperrfläche entfernen > der Button kann wieder betätigt werden

    PS: Buttons, die per Animation ausgeblendet werden sind nun weis Gott kein iOS-Standard. Eventuell macht es Sinn, eine andere Lösung zu suchen. Je mehr custom, je mehr Stress und der User ist oft mehr verwirrt, denn begeistert von unerwartetem UI-Verhalten.
  • Je nach verwendeter Animations-Methode steht ggf. ein Completion Block zur Verfügung, in dem Du den View/Button auf Hidden setzen kannst, nachdem dieser über die Animation des Alpha Wertes ausgeblendet wurde. ;)

    Dies könnte dann z.B. so aussehen:

    Ausblenden

    Quellcode

    1. UIView.animate(withDuration: 0.5, animations: {
    2. self.meinView.alpha = 0.0
    3. }, completion: { (complete) in
    4. if complete {
    5. self.meinView.isHidden = true
    6. }
    7. })

    Einblenden:

    Quellcode

    1. meinView.isHidden = false
    2. UIView.animate(withDuration: 0.5, animations: {
    3. self.meinView.alpha = 1.0
    4. }, completion: { (complete) in
    5. if complete {
    6. }
    7. })
    Der View/Button sollte aber nicht mehr bedienbar sein, wenn der Alpha Wert auf 0 steht. D.h. das isHidden ist eigentlich nicht erforderlich. ;)
  • MCDan schrieb:

    Je nach verwendeter Animations-Methode steht ggf. ein Completion Block zur Verfügung, in dem Du den View/Button auf Hidden setzen kannst, nachdem dieser über die Animation des Alpha Wertes ausgeblendet wurde. ;)

    Dies könnte dann z.B. so aussehen:

    Ausblenden

    Quellcode

    1. UIView.animate(withDuration: 0.5, animations: {
    2. self.meinView.alpha = 0.0
    3. }, completion: { (complete) in
    4. if complete {
    5. self.meinView.isHidden = true
    6. }
    7. })
    Einblenden:

    Quellcode

    1. meinView.isHidden = false
    2. UIView.animate(withDuration: 0.5, animations: {
    3. self.meinView.alpha = 1.0
    4. }, completion: { (complete) in
    5. if complete {
    6. }
    7. })
    Der View/Button sollte aber nicht mehr bedienbar sein, wenn der Alpha Wert auf 0 steht. D.h. das isHidden ist eigentlich nicht erforderlich. ;)

    Eine Frage habe ich hierzu dann aber doch noch :/
    Um die "Animation" langsamer auszuführen habe ich den withDuration Wert auf 0.1 heruntergesetzt, kann aber keinen unterschied feststellen.
    Kann es sein dass das ganze einfach viel zu schnell abläuft oder hat der Wechsel des Wertes vielleicht auch gar keinen Einfluss darauf?

    Grüße,

    Ferdi