我需要为此tablevIEw使用自定义UItableVIEwCell,因此我执行了以下步骤:
>创建了一个名为SWtableVIEwCell的UItableVIEw子类
>在vIEwDIDLoad中添加了一个调用,用接口生成器注册单元格:[self.tableVIEw registerClass:[SWtableVIEwCell class] forCellReuseIDentifIEr:@“Cell”];
>在我的tablevIEw的故事板中,将原型单元的Class设置为SWtableVIEwCell
>在故事板中,将单元格重用标识符设置为“Cell”
>在故事板上为原型单元添加了一些标签
>仍然在故事板中,按住Ctrl键从标签拖动到SWtableVIEwCell.h以创建出口
>在我的cellForRowAtIndexPath:方法中,将单元格出列并转换为自定义子类:SWtableVIEwCell * cell =(SWtableVIEwCell *)[tableVIEw dequeueReusableCellWithIDentifIEr:@“Cell”];
检查时,单元格变量是正确的类型.它不是UItableVIEwCell,而是SWtableVIEwCell.但没有一个网点人口稠密.属性存在,但它们是零.我敢肯定有一个我必须要忘记的联系,但我想不出我在这一点上跳过的任何事情.
这种情况是否可行,或者它是否只能通过IB和故事板工作?
解决方法 删除呼叫[self.tableVIEw registerClass:[SWtableVIEwCell class] forCellReuseIDentifIEr:@"Cell"];
解决了这个问题.
我不知道这个方法究竟是做什么的,因为我从未使用它,所以我会调查一下.如果有人有关于某些信息的信息,请告诉我们!
编辑:
因此,registerClass:forCellReuseIDentifIEr:背后的想法是它告诉tableVIEw如何创建新的单元格.这样,如果dequeueReusableCellWithIDentifIEr:不返回单元格(如果队列为空),则tableVIEw知道如何创建新单元格,并且您不需要手动创建一个单元格.
编辑2:
我找到了this个帖子,其中说:
If the cell is created using prototypes within a storyboard it is not necessary to register the class.
只需调用dequeueReusableCellWithReuseIDentifIEr:将“激活”tableVIEw的单元重用功能.
所以registerClass:forCellReuseIDentifIEr:只有在不使用故事板的情况下手动构建单元格时才会被调用.
总结以上是内存溢出为你收集整理的ios – UIViewController中的Xcode 5.1 UITableView – 自定义TableViewCell Outlets为零全部内容,希望文章能够帮你解决ios – UIViewController中的Xcode 5.1 UITableView – 自定义TableViewCell Outlets为零所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)