2011-07-12 11 views
7

UIControl alt sınıfını yapıyorum ve burada her şeyi program aracılığıyla düzenliyorum. Artık onu hazırladım, çeşitli ekranlarda birden çok kez yerleştirmem gerekiyor. IOS için bir IB eklentisi yapamayacağınızı biliyorum, ancak IB'de bir UIView almanın ve kontrolümün olması gereken yerde/yerde bulunmanın bir yolu yok ve daha sonra UIControl'ün alt sınıfım olacak şekilde Özel Sınıf özelliğini ayarla. ? Bilhassa IB'de gerçekte nasıl olduğunu göstermeyeceğimi bildiğimi biliyorum, ancak en azından bu, ekran üzerindeki diğer şeylere göre genel boyutu ve yerleşimi ayarlamanıza izin veriyor. Ayrıca ViewOntrollerimde IBOutlet'leri yarattım ve IB'deki görünümü doğru bir şekilde onlara bağladım. Ancak, çalıştırdığımda herhangi bir özelleştirmeyi göremiyorum ve initWithFrame: veya loadView'da kesme noktaları belirlediğimde, kodumun çağrıldığını hiç göremiyorum. Bunu nasıl yapmalıyım?Özel UIControl alt sınıf seti iOS için IB'de

+0

Hangi versiyon IB/Xcode kullanıyorsunuz? – bshirley

+0

'initWithCoder:' bir cisim bir uçtan yüklendiğinde çağrılır, 'awakeFromNib' – bshirley

+0

Xcode 4.0.1'i kullanarak dönüşümlü olarak geçersiz kılabilirsiniz. @bshirley Bu durumda olduğunu düşündüm, bu yüzden de her iki durumda da çağrılması gereken 'loadView' içinde kesme noktaları belirledim. – jamone

cevap

10

UIView öğesini nib dosyasına sürükleyebilir, ardından sınıfı UIView alt sınıfına değiştirmek için kimlik denetçisini (command-opt-3) kullanabilirsiniz.

Sen initWithFrame: bir uç yüklenen zaman çağrılan başlatma kodunda alt sınıfları, yani değil belirlemesi gerekir

. Tamlık için kodlama yapıyorsanız, her iki yöntem de (programatik ve nib tabanlı) aynı başlatmayı çağırmalıdır. İsterseniz

, sadece özel subviews düzen layoutSubviews uygulamak, ardından oluşturmak ve başlatma kodu addSubview:. Bu görünüm, başlangıçta olduğu gibi yeniden boyutlandırıldığında her zaman çağrılır.

+0

Ben bir moron'um. 'loadView', UIView' üzerinde bir yöntem değil, UIViewController'de. Diğeri daha sonra bu goof tam olarak bu şekilde vardı – jamone

+1

d'oh - bu * olur * bir sorun =) – bshirley