2014-09-05 13 views
5

için ben SKScene bakış bir UIView ekliyorum eklendi için çalışmaz. Daha sonra, bu UIView formunu süper görünmesini kaldırmak istediğimde, uiview.removeFromSuperview standart yöntemini kullanmak işe yaramıyor. Bunun yerine nasıl başarmalıyım?removeFromSuperview UIView en SKScene

İşte
func addContainerView() { 

    let containerRect = CGRectMake(400, 24, 600, 720) 
    smallerView = UIView(frame: containerRect) 
    smallerView.backgroundColor = UIColor.redColor() 
    self.view.addSubview(smallerView) 
} 

bunu kaldırmak çalışılıyor nasıl:: İşte UIView eklemek nasıl, işte

func removeContainerView() { 

    smallerView.removeFromSuperview() 
} 

Bu, tüm SKScene sınıfının içinde yer alır 'self' o sahnenin atıfta . Herhangi bir düşünce?

+0

Aslında 'SKView' –

+0

Teşekkür @AndreyGordeev Bu da ilginç bir gözlem, bir çok doğru olduğunu self.view',' eklemek, ama benim sorunu nasıl etkilediğini emin değilim. SKView, UIView'den miras alır ve bu nedenle alt raporların kaldırılması aynı şekilde çalışmalıdır, değil mi? – zeeple

+0

Bu benim için iyi çalışıyor. Ekranda kalmasına neden olan başka bir şey olmalı. SceneKit şablonunda viewDidLoad sırasında bir görünüm ekledim ve bunu handleTap yönteminde kaldırdım ve her şey beklendiği gibi çalışıyor. – bjtitus

cevap

1

Her şeyden önce, hangi hızlı sürüme sahip olduğunuzu merak ediyorum.

self.view dolayısıyla sizin yazmalısınız opsiyonel 1.2 içinde: self.view?.addSubview() hedeflediğiniz eğer hızlı basit bir uygulamasını mı

class GameScene: SKScene { 

    let subview = UIView() 

    override func didMoveToView(view: SKView) { 

    subview.frame = CGRectMake(0, 0, 100, 100) 
    subview.backgroundColor = SKColor.orangeColor() 
    self.view?.addSubview(subview) 
    } 

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
    removeContainerView() 
    } 

    func removeContainerView() { 
    subview.removeFromSuperview() 
    } 
} 

Yukarıdaki kod işleri yapmak için hızlı 1.2 çalıştık 1.2

çok iyi. Ben senin görünümü removeContainerView aslında denir emin misiniz

  1. kaldırıldı almaz nedenlerden bir çift düşünebilirsiniz.
  2. 'un çağrılıp çağrılmadığını görmek için bir kesme noktası oluşturmaya çalışın SKView'inizi kod olarak ayarladıysanız, yanlış bir şey ayarlanmış olabilir.
  3. Kişisel Subview ayırmanın ya ediliyor şey

tamamen biraz daha fazla kod görmek gerek sorununuzu hata ayıklamak için.

İhtiyacımız şudur: subview removeContainerView diyoruz

  • Tüm fonksiyonlar()
  • Daha da iyisi ait

    1. Bildirgesi pastebin sizin SKScene sınıfına olacaktır.