有人可以請適當的方式從我的文件加載視圖層次學校我。我使用加載的視圖作爲模板來消除一系列視圖,並且我正在使用的當前方法被巧妙地打破。我不應該在我應該的時候複製或保留。下面是相關的代碼:IB和UIView。從nib加載視圖層次結構的正確方法是什麼?
// pageSet is a list of view tag numbers I'll be using
for (NSNumber *n in pageSet) {
NSUInteger viewTag = [n integerValue];
// Ingest the nib. Should there be a copy or retain here?
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"RandomStripe" owner:self options:nil];
// Pull the view from the nib. Should there be a copy or retain here?
MyView *view = (MyView *)[topLevelObjects objectAtIndex:0];
// The view has a label as it's subview
UILabel *pageNumberLabel = [view.subviews objectAtIndex:0];
pageNumberLabel.text = [NSString stringWithFormat:@"%d", viewTag];
CGFloat xOffset = ((float) viewTag) * self.scrollView.bounds.size.width;
view.frame = CGRectMake(xOffset, 0, self.scrollView.bounds.size.width, self.scrollView.bounds.size.height);
view.tag = viewTag;
// Insert the view as a child of my containerView
[self.containerView addSubview:view];
} // for (pageSet)
這讓我的頭受傷了嗎?
乾杯, 道格
Kendall, 我已經仔細閱讀了關於此的文檔 - 「資源編程指南」 - 並且據我所知。我應該完全清楚這個代碼。它應該正常工作。每次迭代拋出循環應該啓動新的nib文件讀取。由於我沒有做任何分配/副本,我應該很樂意去。作爲「規則」說明。 我仍然不清楚爲什麼這個簡單的代碼不能按預期工作。 – dugla 2009-10-06 14:19:46
其實,我同意上面的代碼應該是工作 - 它是如何中斷的? – 2009-10-06 15:09:48