2014-10-17 9 views
7

Xcode6'da iOS için Swift'i kullanıyorum, dinamik olarak oluşturulmuş kartlar arasında gezinecek bir kaydırma görünümü oluşturmam gerekiyor. Kartlar kendi benzersiz resimlerini, metinlerini ve düğme işlevlerini içerir ancak aynı düzeni paylaşırlar. Her bir kartı oluşturabildiğim ve ardından hepsini birer birer kaydırma penceresi içine yerleştirebildiğim film şeridinde yeniden kullanılabilir bir görünüm denetleyicisinin nasıl oluşturulacağını anlamakta sorun yaşıyorum.Görünüm denetleyicisini kaydırma görünümünü yeniden kullanma. Hızlı iOS8 geliştirme

Normalde Stack Overflow ile ilgili daha spesifik sorular sormak istiyorum, ancak saatler süren araştırmalardan sonra kayıp yapıyorum; Yardımınız çok takdir edilecektir!

cevap

11

Özel konteyner görünümü denetleyicisi arıyorsunuz.

programlı bunu varsa, ana denetleyici (böylece görünüm denetleyicisi hiyerarşi içinde çocuk görünümü denetleyicisi ekleme), çocuğun bakış yapılandırmasının tüm (ana kontrolörün görünümü hiyerarşi eklemeden dahil) yapmak üzerine addChildViewController çağrı , çocuğun willMoveToParentViewController:nil arayarak, programlı çıkarırken, bu süreci tersine

let childController = self.storyboard?.instantiateViewControllerWithIdentifier("storyboardIdForChildScene") as UIViewController! 
addChildViewController(childController) 
childController.view.frame = ... 
scrollView.addSubview(childController.view) 
childController.didMoveToParentViewController(self) 

onun Superview gelen çocuk görünümünü kaldırmak ve tüm yapıldığında, removeFromParentViewController çağırır: ve sonra en sonunda, çocuğun didMoveToParentViewController çağrı :

konusunda daha fazla bilgi için

container view

: Interface Builder bunu ise

, sadece sizin ana görünümü kontrolörün sahneye "Nesne Kitaplığı" dan "Konteyner Görünümü" sürüklemek, çok daha kolay Bunu yapın, View Controller Programlama Kılavuzunda Create Custom Container View Controllers'a bakın. Görünüm denetleyici sıradüzenini görünüm hiyerarşisiyle eşitlenmesini sağlamak için neden bu kilitleme çağrılarını yapmanın önemli olduğuna ilişkin bir tartışma için bkz. WWDC 2011 videosu Implementing UIViewController Containment.

+0

Teşekkür ederiz! Şu anda referanslarınızı inceliyorum ve tüm bu bilgileri sindiriyorum. Görünüşe göre, istediğim düzeni içeren bir ViewController yaratmalıyım, bu ViewController'ı bir ScrollView içinde bir konteyner görünümüne bağlayın ve daha sonra orijinal ViewController'ı özgün özellikler ile programlı olarak çoğaltın. kartlar? – madeFromCode

+0

Programsal olarak yapıyorsanız, yeni çocuk görüntü denetleyicilerini (yukarıda gösterildiği gibi) "çoğaltamaz", "çoğaltamazsınız". – Rob

+0

Doğru! Üzgünüm, yanlış konuşma. OOP kavramını ve bir sınıfın bir örneğini, bu sınıfa dayalı birden çok nesne yapmak için tamamen anlıyorum. Yaşadığım sıkıntı, hikaye tahtasında bu sınıfı nasıl oluşturacağımı anlamaya ve ardından kaydırma görünümümü doldurmak için birden çok örneğini başlatabiliyor. Kesinlikle beni doğru yola koymuş gibisin. Hazırladığınız videoyu şimdi kendim hazırlamak için izliyorum, sonra uygulamayı deneyeceğim. – madeFromCode