MyView
adlı özel bir UIView
sınıfında, storyboard aracılığıyla yapılandırılan UIViewController
ile birlikte kullanıyorum. Görünüm özelliklerinin çoğunluğu Arayüz Oluşturucu aracılığıyla yapılandırılmıştır; Ancak, böyle, programlı benim düğme için arka planı olarak bunları kurmadan önce görüntüleri bir çift ayarlamak gerekir:Film şeridinden yüklendikten sonra UIView ayarlanıyor
-(void)setupVisuals {
UIImage *image = [[UIImage imageNamed:@"myButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];
// _myButton is an IBOutlet property set through the storyboard:
[_myButton setBackgroundImage:image forState:UIControlStateNormal];
}
sorun olduğunu _myButton
de nil
çünkü, başlatıcısı * den [self setupVisuals]
arayamayacağımı o zaman.
MyViewController
'ın
viewDidLoad:
[(MyView*)self.view setupVisuals];
bu satır ekleyerek sorunu çözdü. Bununla birlikte, bu durum muhtemelen göreceli olarak yaygın bir sorun olan bir çözümden ziyade, bir çalışma ortamı gibi görünmektedir.
geçersiz kılmak için birUIView
yöntem veya
viewDidLoad:
mekanizması içine dokunmadan
MyView
sitesindeki görsellerin başlatma tamamlamak için başka bir mekanizma var mı? görünüm film şeridinden yüklü olduğu için bu durumda
*, başlatıcı
initWithCoder:
olduğunu. Başlatıcının doğru çağrıldığını doğruladım, ancak görseller henüz hazır değil. Doğru
viewDidLoad:
kullandığınız gibi
IIRC 'initWithFrame: 'olarak adlandırılır bile uç/XIB'nin gelen yükleme. Oradan, süper aramadan sonra, bunu yapamaz mısın? Benzer bir problem yaşadığımı hatırlıyorum ve çözdüm ama tam olarak ne olduğunu nasıl hatırlamıyorum. Bu durumlarda –
Genellikle sadece viewWillAppear' 'in "başlatma", ama çözmenin bir temizleyici yol olup olmadığını, bilmek istiyorum. Temelde görünüm, tüm çıkışları ile film şeridinden tam olarak ne zaman yüklenir? –
Eğer viewController içinde viewWillAppear yönteminden sadece [self.myView setupVisuals] denediniz mi? Bu görünümü IB'de başlattıysanız ve bunu bir çıkış noktası olarak ayarladığınızda bu işe yarayacaktır. Yani @DanF –