2014-10-17 13 views
5

Farklı boyutlar için farklı tasarımlar tanımlayan arayüz oluşturucuda sınıf boyutları kullanıyorum.XCode 6 - iOS 8: görünüm yüklü olup olmadığını program aracılığıyla kontrol edin

Görünümlerimden biri belirli bir boyut için yüklü değil. Bu beklendiği gibi çalışır, ancak şimdi bu görünümün yüklü olup olmadığını programlı olarak söylemek istiyorum. Yüklenmiş olsun ya da olmasın, görünüm hiçbir zaman sıfır değildir ve kontrol etmek için isInstalled bayrağı göremiyorum.

Bunu yapmanın doğru yolu nedir?

cevap

4

Bu büyük bir çözüm değildir, ama henüz daha iyi bir bulunamadı ettik.

docs devlet bir kaldırılan görünüm için bir çalışma zamanı nesne hala oluşturulur" diye Ancak, görünüm ve ilgili tüm kısıtlamaları görünüm hiyerarşisine eklenmez ve görünümün nil bir süperview özelliği vardır ".

Geçerli bir süper görüntü için bir çözüm, bir çözüm olarak çalışır, ancak bunun çok geç olması gerektiğini buldum - viewDidAppear. Süper görüşler, örneğin viewWillAppear'da hala sıfırdır. Elma Dokümanlar itibaren

-1

:

bir kaldırıldıktan görünüm için bir çalışma zamanı nesne hala Installing and Uninstalling Views for a Size Class oluşturulur. Ancak, görünüm ve ilgili kısıtlamalar görünüm hiyerarşisine eklenmez ve görünümün nil'in süperview özelliği vardır. Bu gizli olmaktan farklıdır. Gizli bir görünüm, görünüm hiyerarşisinde herhangi bir ilgili kısıtlamadır.

PossiblyUninstalledView.superView != nil değerlendirerek kontrol edebilirsiniz. Eğer doğruysa, sınıf uygun şekilde kurulur.

0

UIView uzantılı bir uzantı yapabilir ve görünümün süper görüntü olup olmadığını kontrol edebilirsiniz. Yüklü ise, doğruysa geri dönecektir, eğer yanlışsa geri dönecektir.

extension UIView { 
    func isInstalled() -> Bool{ 
     return (self.superview != nil) ? true : false 
    } 
} 
İlgili konular