7
UIView
alt sınıflarını oluştururken, genellikle tüm başlangıç ve düzen kodlarımı init
yöntemine yerleştiriyorum. Ancak, düzen kodunun layoutSuviews
'u geçersiz kılarak yapılması gerektiğini söylüyorum. her bir yöntem çağrıldığında açıklar, ancak bu uygulamada bunları kullanmayı bilmek istiyorum SO üzerinde post var.UIView: layoutSubviews vs initWithFrame
init
yöntemde tüm kodumu koymak :
MyLongView.m
- (id)initWithHorizontalPlates:(int)theNumberOfPlates
{
self = [super initWithFrame:CGRectMake(0, 0, 768, 1024)];
if (self) {
// Initialization code
_numberOfPlates = theNumberOfPlates;
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.frame];
[scrollView setContentSize:CGSizeMake(self.bounds.size.width* _numberOfPlates, self.bounds.size.height)];
[self addSubview:scrollView];
for(int i = 0; i < _numberOfPlates; i++){
UIImage *img = [UIImage imageNamed:[NSString stringWithFormat:@"a1greatnorth_normal_%d.jpg", i+1]];
UIImageView *plateImage = [[UIImageView alloc] initWithImage:img];
[scrollView addSubview:plateImage];
plateImage.center = CGPointMake((plateImage.bounds.size.width/2) + plateImage.bounds.size.width*i, plateImage.bounds.size.height/2);
}
}
return self;
}
Her zamanki görevler var: ayar, görünümün çerçeveyi kurma konulu bir ivar başlatılıyor UIImages’yi başlatmak, onları UIImageView’lere yerleştirmek, onları dışarıda bırakmak.
Soruma sorum: init
numaralı telefondan hangileri yapılmalı ve bunlardan hangileri layoutSubviews
?