Ios 文件';老板的困惑
假设我有以下XIB:Ios 文件';老板的困惑,ios,Ios,假设我有以下XIB: IssueSelectorViewController 文件所有者:IssueSelectorViewController IssueCell-文件所有者-IssueSelectorViewController 文件所有者:IssueSelectorViewController 在IssueSelectorViewController.h文件中,我有以下内容: @interface IssueSelectorViewController : UIViewCont
- IssueSelectorViewController
- 文件所有者:IssueSelectorViewController
- IssueCell-文件所有者-IssueSelectorViewController
- 文件所有者:IssueSelectorViewController
@interface IssueSelectorViewController : UIViewController <AQGridViewDelegate, AQGridViewDataSource, ReaderViewControllerDelegate,UIScrollViewDelegate, IconDownloaderDelegate>
@property (nonatomic, strong) IBOutlet AQGridView * gridView;
@property (nonatomic, strong) IBOutlet IssueCell *gridViewCellContent;
...
@end
nib中的“文件所有者”是代理或占位符。当实际加载nib时,与此占位符的任何连接都会连接到实际拥有nib的真实对象。因此,当执行[UIViewController initWithNibName:bundle:]时,文件的所有者占位符将替换为实际的视图控制器对象
加载自定义表视图单元格时,情况非常类似(我假设您在tableView:cellforrowatinexpath:method中执行此操作)。加载nib,指定所有者,该所有者对象将获得“文件所有者”占位符在nib本身中拥有的所有连接
我希望这有意义
如果发布tableView:cellforrowatinexpath:,您可以看到连接的位置。(或者,如果为tableView注册了nib,则在创建该nib时指定了所有者。)
编辑
好的,从你发布的代码来看:
[[NSBundle mainBundle]loadNibNamed:@“IssueCell”所有者:自选项:nil]代码>
您将所有者指定为“self”,因此“self.gridViewCellContent”应该是刚从nib加载的新单元格,前提是您在nib中建立了正确的连接。加载nib后,与nib中“文件所有者”的任何连接现在都将连接到“self”(您的视图控制器)
(你在那里加载nib似乎很奇怪,因为该方法需要AQGridView*作为参数,但我想你知道你在那里做什么)我添加了一个使用gridViewCellContent的示例。所以每次调用该方法时,我都会创建一个新的IssueCell?这不好…我只需要确定单元格的宽度和高度,也许我应该改为硬编码。正确,每次调用该方法时,都会创建一个新单元格,并且“gridViewCellContent”属性会重置为该新单元格。
- (CGSize)portraitGridCellSizeForGridView:(AQGridView *)aGridView
{
[[NSBundle mainBundle] loadNibNamed:@"IssueCell" owner:self options:nil];
return self.gridViewCellContent.frame.size;
}