Xib自定义多个Cell时遇到的Bug

Q:Cell数据不能正确加载

A:loadNibNamed:返回的是一个数组,当在Xib中自定义多个Cell时,一定要注意取Object的顺序,一个经验是他等于Xib右边栏View显示的顺序

 1 + (instancetype)cellWithTableView:(UITableView *)tableView existedComments:(NSString *)comments
 2 {
 3     TripNoticeLogCell *cell;
 4     if (comments) {
 5         cell = [tableView dequeueReusableCellWithIdentifier:@"twoLineNoticeLog"];
 6         if (cell == nil) {
 7             cell = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([DemoCell class]) owner:nil options:nil] objectAtIndex:1];
 8         }
 9     } else {
10         cell = [tableView dequeueReusableCellWithIdentifier:@"oneLineNoticeLog"];
11         if (cell == nil) {
12             cell = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([Demo2Cell class]) owner:nil options:nil] objectAtIndex:0];
13         }
14     }
15     return cell;
16 }

Q:单个Label不能正确加载数据

A:当因为某些原因你的IBOutlet连线断掉,你需要从代码反连到Xib,当Xib中有多个自定义cell时,Xcode会让你选择你要连接到哪个cell,这是一定要注意,连错了Xcode不会给出任何错误提示,运行程序也不会崩溃,但是Label的数据不会正确显示

				
时间: 2024-08-03 20:38:51

Xib自定义多个Cell时遇到的Bug的相关文章

自定义不等高cell—storyBoard或xib自定义不等高cell

1.iOS8之后利用storyBoard或者xib自定义不等高cell: 对比自定义等高cell,需要几个额外的步骤(iOS8开始才支持) 添加子控件和contentView(cell的contentView)之间的间距约束(需要代码控制约束) 设置tableViewCell的真实行高和估算行高 // 以下两行代码就被苹果成为self0sizing技术,可惜只能在iOS8及其之后应用 // 告诉tableView所有cell的真实高度是自动计算(根据设置的约束来计算) self.tableVie

Bug:(使用xib加载控制器view时遇到的bug) loaded some nib but the view outlet was not set

当使用 initWithNibName 函数, 并使用 由nib文件生成的ViewController 的view属性时候,遇到这个问题. UIViewController * UIVC = [[UIViewController alloc] initWithNibName:@"loc" bundle:nil]; [self.view addSubview:UIVC.view]; NibName[2203:207] *** Terminating app due to uncaught

IOS xib在tableview上的简单应用(通过xib自定义cell)

UITableView是一种常用的UI控件,在实际开发中,由于原生api的局限,自定义UITableViewCell十分重要,自定义cell可以通过代码,也可以通过xib. 这篇随笔介绍的是通过xib自定义cell. 首先通过gif介绍如何创建xib. 然后实现代码部分,要注意的是实现代码的同时要使代码与xib相关联.-如图 下面便是代码,一些解释我在代码中注释了. ViewController.m // // ViewController.m // CX-Xib在tableView中的简单应用

开发进阶18_通过xib自定义Cell

UITableViewController 继承自ViewController,TableViewController自动给我们添加了dataSource和delegate. 里面只有一个UITableView 1.UITableViewController内部默认会创建一个UITableView *tableView 2.UITableViewController内部tableView的delegate和dataSource就是这个UITableViewController 3.UITable

xib自定义cell代码规范

// //  MJTgCell.m //  01-团购 // //  Created by apple on 14-4-1. //  Copyright (c) 2014年 itcast. All rights reserved. // #import "MJTgCell.h" #import "MJTg.h" @interface MJTgCell() @property (weak, nonatomic) IBOutlet UIImageView *iconVi

用xib自定义UITableViewCell

1.文件结构: 2. 先创建一个xib文件,删除原有的view,添加一个TableViewCell控件. 3.ModelTableViewController.m文件 1 #import "ModelTableViewController.h" 2 #import "Cell.h" 3 4 5 @interface ModelTableViewController () 6 7 @end 8 9 @implementation ModelTableViewContr

用xib自定义UITableViewCell的注意事项——重用

问题的提出: 有时候我们经常需要自定义tableView的cell,当cell里面的布局较为复杂时往往舍弃纯代码的方式而改用xib的方式进行自定义.当我们用纯代码的方式布局cell时,往往会在cell的initWithStyle: reuseIdentifier: 方法里面用纯代码进行布局,然后在外部VC的cellForRowAtIndexPath方法里面我们会这么写,假定自定义的cell为Cell,继承自UITableViewCell: static NSString *CellIdentif

iOS开发-通过xib自定义cell-团购列表

自定义cell1.通过xib1>一定要注意在xib的cell中设置重用标识(reuse identifier)2>封装的步骤*换继承,重新拖TableView,然后实现数据源方法*新建xib描述cell的样子---DealCell.xib并把cell的高度设置为80,然后拖控件*新建UITableViewCell的子类---DealCell(用来封装xib内部的所有东西)*将xib中Cell的Class改为DealCell*在DealCell中拥有xib中的所有子控件(声明属性,进行连线)*每

iOS开发-通过xib自定义cell-新闻项目

自定义Cell的两种方法1>通过xib来自定义cell (如果位置和宽高固定) 2>通过代码来自定义cell 第一种方法:通过xib来自定义cell(拖控件方便,但是2个重用标识要改为一样) 将控制器头文件中继承的UIViewController改为继承UITableViewController,则系统自动将UITableView的数据源和代理设置为控制器,并且已经遵守了协议,大概实现了数据源方法和代理方法,并且控制器View就是TableView,不存在View里面又有一个TableView