2016-02-09 5 views
0

Я делаю игру в Swift 2.0 & iOS> = 8, в которой у меня есть начальный VC-хостинг SKScene, который управляет самой игрой.Определите пользовательский фрейм UIViewController или UIView

Когда игрок выигрывает или проигрывает, я хочу, чтобы показать сообщение, как показано ниже:

enter image description here

я показывать это сообщение через другой VC загруженное из интерфейса строителей с ниже кодом вызывается из исходного VC класс:

let VCWin = self.storyboard!.instantiateViewControllerWithIdentifier("WinVC") as! WinVC 
VCWin.modalPresentationStyle = UIModalPresentationStyle.FormSheet 
VCWin.modalTransitionStyle = UIModalTransitionStyle.CrossDissolve 
self.presentViewController(VCWin, animated: true, completion: nil) 

важно, что WinVC позволяет увидеть, что за серым цветом, как FormSheet & свойства CrossDissolve позволяют сделать.

WinVC также будет иметь представление, которое представляет SKScene, который выполняет некоторые анимации спрайтов.

Моя проблема состоит в том, чтобы удалить белые части рядом с закругленными желтыми углами, чтобы увидеть, что находится сзади (например, остальная часть экрана, которая затемняется).

Возможно ли установить рамку VC на маску используемого здесь изображения? или установить рамку представления на маску используемого изображения и иметь прозрачный прозрачный индикатор?

Я удалил все от WinVC, чтобы избежать проблем, вызванных другими частями кода

class WinVC: UIViewController 
{ 
    override func viewDidLoad() 
    { 
     super.viewDidLoad() 
    } 

    override func viewDidAppear(animated: Bool) 
    { 
    } 

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) 
    { 
     for _ in touches 
     { 
      self.dismissViewControllerAnimated(false, completion: nil) 
     } 
    } 

    override func viewDidDisappear(animated: Bool) 
    { 
    } 
} 

Также установка в интерфейсе строителя:

VC Setup

enter image description here

вид Установка

enter image description here

Настройка изображения

enter image description here

+1

вы можете разместить свой код WinVC? Я предполагаю, что у вас есть какая-то точка зрения, которая непонятна. Убедитесь, что все представления имеют цвет фона, установленный для очистки. –

+0

Не так много, потому что я удалил все, чтобы решить эту первую проблему. Сообщение обновлено с настройкой в ​​IB – jbegood

+0

уверенно, вот почему. представление, которое поставляется с контроллером представления, должно быть очищено. давая ему попробовать себя, но вы могли бы побить меня до него, так как я должен сделать тестовый проект =] –

ответ

0

я решил мою проблему следующим раствором:

  • параметр Set VCWin Презентация "За полный экран"
  • Набор VCWin размер к тот же размер, что и VC, он переходит
  • Установите цвет фона SKView в VCWin на «Очистить цвет»
  • Изображение используемый в качестве фона в SKView, должен иметь альфа, где требуется прозрачность (углы в моем случае)
  • Установите размер SKView в размере изображения, используемого в качестве фона
  • Создайте ShapeNode с правильной цветопередачей/и положил его на вершине SKScene, который находится в ВК за VCWin сделать тусклый эффект

Тогда я имею желаемого результата:

enter image description here

0

Фоторамка прекрасно - Это, вероятно, потому, что ваш UIViewController содержит вид объекта, который имеет белый фон.В вашей WinVC класса viewDidLoad, сделайте следующее:

view.backgroundColor = UIcolor.clearColor() 
+0

Это уже имело место в установках IB (см. обновление в сообщении). вид и изображение имеют фон, установленный для очистки. И когда я использую Alpha, весь контент WinVC тускнеет. – jbegood

Смежные вопросы