Teraz pytanie jak tak przygotowany wzór użyć wielokrotnie w programie?
Na tą chwilę robię coś takiego:
for (int i=0; i<[documentsList count]; i++) { documentView = [[TestClass alloc] initWithFrame:CGRectMake(X, Y, 100, 200)]; CGRect tempFrame; tempFrame.origin.x = X; tempFrame.origin.y = Y; documentView = [TestClass loadInstanceFromNib]; documentView.frame = tempFrame; documentView.UI_Title.text = [[documentsList objectAtIndex:i] lastPathComponent]; documentView.UI_Title.numberOfLines = 1; documentView.UI_Title.adjustsFontSizeToFitWidth = YES; documentView.tag = i; [self.view addSubview:documentView]; X += 100; }
Jednak zamiast umieścić view jeden obok drugiego, to tak jakby albo się wszystkie na raz nałożyły, bez zmiany współrzędnych albo utworzył się jeden egzemplarz i tylko label zmieniał swoją wartość...
Jeśli zaś chodzi o linijkę
documentView = [TestClass loadInstanceFromNib];
to jest to tylko kategoria:
+(id)loadInstanceFromNib { UIView *result; NSArray *viewsElements = [[NSBundle mainBundle] loadNibNamed:@"TestClass" owner:self options:nil]; for (id object in viewsElements) { if ([object isKindOfClass:[TestClass class]]) { result = (TestClass *)object; break; } } return result; }