自定义 UIView 中的 UItable
Posted
技术标签:
【中文标题】自定义 UIView 中的 UItable【英文标题】:UItable in a custom UIView 【发布时间】:2014-06-20 06:12:56 【问题描述】:我创建了 UIView CustomView 的子类。还为此创建了一个xib。 在 xib 中添加了一个 tableView 及其委托和数据源给 File 的所有者。 然后添加这个视图如下。
nibViews = [[NSBundle mainBundle] loadNibNamed:@"CustomView"
owner:self
options:nil];
self.searchView = [ nibViews objectAtIndex: 0];
[self.view addSubview:self.searchView];
它崩溃了。说tableView:numberOfRowsInSection:]:unrecognized selector sent to instance.
但是我已经实现了所有的数据源方法。
然后我删除了数据源并从 xib 委托给了文件的所有者。 添加以下内容,
-(void)awakeFromNib
self.table_userlist.delegate = self;
self.table_userlist.dataSource = self;
[self.table_userlist reloadData];
现在它可以工作了。
请帮助我理解这种情况。当我设置数据源、来自 xib 的委托和以编程方式来自awakeFromNib
时,它有什么不同。
谢谢。
【问题讨论】:
第一个代码块是通过什么方法获得的? 【参考方案1】:我认为您已经在自定义视图中实现了数据源,并且您正在视图控制器的视图中进行实例化。
当您实例化时,您通过说owner:self
将视图的所有权交给视图控制器。所以数据源必须在视图控制器中。
在从 nib 唤醒时,代码仍在视图中,您可以分配委托视图。
【讨论】:
谢谢。知道了。我在 viewController "nibViews = [[NSBundle mainBundle] loadNibNamed:@"CreateUserSearchView" owner:self options:nil];" 中使用了这个。因此 viewController 成为了文件所有者。如何让 CustomView 成为所有者?【参考方案2】:及其对文件所有者的委托和数据源
您必须将这些设置为您的自定义视图,而不是文件的所有者。 ,并在该视图中实现委托和数据源方法。
【讨论】:
以上是关于自定义 UIView 中的 UItable的主要内容,如果未能解决你的问题,请参考以下文章
如何在已经是 NIB 的 UICollectionViewCell 中加载带有自定义单元格的 UITable
自定义 UITableViewCell 中的自定义 UIView
在 Storyboard 中设计的自定义 UITableViewCell 中的自定义 UIView
嵌入在 UIView 中的动态 UITableView - 计算高度