2016-04-21 1 views
0

J'ai un jeu SpriteKit où je veux flouter seulement une partie de l'écran (le tableau où le jeu est joué). Mais en même temps, je veux pouvoir interagir avec les autres éléments (comme UIButtons) sur l'écran. Donc, fondamentalement, je cherche quelque chose comme une feuille de formulaire, mais un qui brouille ce qui est en dessous et permet une interaction avec le contrôleur de la vue principale.Comment faire pour que UIVisualEffectView soit flou sans passer en mode plein écran/contexte actuel?

Alors, voici mon problème. J'ai essayé de:

  1. mis le UIVisualEffectView sur mon principal contrôleur de vue,
  2. présente un autre contrôleur de vue modalement avec l'un des styles de présentation standard et ont la UIVisualEffectView là-dedans, ou
  3. présente une autre vue contrôleur modulaire OVER sur écran plein/contexte actuel et ont le UIVisualEffectView là.

Aucune de ces options ne fonctionne pour moi.

  • Les options 1 et 2 ne sont pas réellement floues. Ils produisent une boîte noire solide à la place. (Bien que, pour une raison ou une autre, le message soit flou lorsque j'obtiens une notification ou lorsque je tire vers le centre de contrôle, je suis confronté au même problème que this user.)
  • L'option 3 est floue, mais ne permet pas interaction avec le contrôleur de vue principal.

Est-ce que quelqu'un sait quoi d'autre que je pourrais essayer? Ou est-ce que je n'utilise pas quelque chose correctement?

Répondre

1

Malheureusement, UIVisualEffectView ne fonctionne tout simplement pas bien avec SpriteKit, même en utilisant SKView. J'ai tout essayé de A à ZPositions.

J'ai décidé de recréer mes UIButtons dans le nouveau contrôleur de vue et de le présenter de façon modale OFS. De cette façon, j'ai accès à la belle flou (SKEffectNode flou n'est pas joli du tout IMO) et à mes boutons. J'espère qu'Apple travaillera sur la synergie de leurs frameworks dans les futures versions d'iOS et de Swift. Là encore, je ne suis pas vraiment un expert en matière de développement d'applications, donc s'il y a autre chose que j'aurais pu faire, j'aimerais l'entendre :-)