如何从XIB文件加载自定义定义UITableViewCells
1个回答
展开全部
下面是详细的步骤:
(1)新建一个空的(Empty)xib文件,File->New,在面板中选择User Interface->Empty,如下图所示:
将文件命名为CustomTableViewCell,表示自定义的cell意思。
(2)拖动一个TableViewCell到空的(Empty)xib文件中,如下图,
(3)修改CustomTableViewCell的高度为90,通过属性面板来设置,如下图,
(4)拖一个UIIMageView到CustomTableViewCell的xib文件,设置该UIImageView控件的tag值为10;再拖两个UILabel到xib文件,设置tag分别为1和2,其布局方式如下图,
上面的几个步骤就进行了CustomTableViewCell的自定义,下面的步骤就是使用这个通过xib文件进行自定义的cell。
(5)选中CustomTableViewCell,点击左上角的File's Owner,如下图
选中这个xib文件中的File's Owner是为了设置CustomTableViewCell的文件所有者,接着看下一步。
(6)在右侧的面板,选择“Show the Identify Inpector”选项,如下图
这时候我们发现CustomTableViewCell的File's Owner为NSObject,因为我要在我的RootViewController中使用,所以我将"NSObject"替换为"RootViewController",表明这个cell的所有者是RootViewController。(PS:你需要将此处的NSObject改为你使用该CustomTableViewCell的ViewController文件名。)
(7)在使用该CustomTableViewCell的ViewController的头文件中写下如下代码,
@interface RootViewController:UIViewController
{
}
@property (nonatomic, strong) IBOutlet UITableViewCell *customCell;
@end
(8)在CustomTableViewCell.xib文件中,拖动File's Owner指向TableViewCell,如下图
(9)在弹出的界面中选择customCell选项,如下图
这就是为什么第(7)步骤要在RootViewController.h文件中声明一个IBOutlet关键字修饰的customCell变量的原因了。
(10)新建一个数据模型文件Person,继承自NSObject,其代码如下,
//Person.h文件
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *headStr;
@property (nonatomic, strong) NSString *speechText;
@end
//Person.m文件
#import "Person.h"
@implementation Person
@end
之所以叫它模型文件,是因为该文件中的属性与CustomTableViewCell上面的控件所需的内容一致,以MVC的视角来看Person就是M(Model),CustomTableViewCell就是V(View),而RootViewController就是C(Controller)。
(11)在RootViewController中初始化TableView数据源_persons
(12)在-tableView:cellForRowAtIndexPath:中使用CustomTableViewCell.xib创建cell
以上就是具体的步骤。
(1)新建一个空的(Empty)xib文件,File->New,在面板中选择User Interface->Empty,如下图所示:
将文件命名为CustomTableViewCell,表示自定义的cell意思。
(2)拖动一个TableViewCell到空的(Empty)xib文件中,如下图,
(3)修改CustomTableViewCell的高度为90,通过属性面板来设置,如下图,
(4)拖一个UIIMageView到CustomTableViewCell的xib文件,设置该UIImageView控件的tag值为10;再拖两个UILabel到xib文件,设置tag分别为1和2,其布局方式如下图,
上面的几个步骤就进行了CustomTableViewCell的自定义,下面的步骤就是使用这个通过xib文件进行自定义的cell。
(5)选中CustomTableViewCell,点击左上角的File's Owner,如下图
选中这个xib文件中的File's Owner是为了设置CustomTableViewCell的文件所有者,接着看下一步。
(6)在右侧的面板,选择“Show the Identify Inpector”选项,如下图
这时候我们发现CustomTableViewCell的File's Owner为NSObject,因为我要在我的RootViewController中使用,所以我将"NSObject"替换为"RootViewController",表明这个cell的所有者是RootViewController。(PS:你需要将此处的NSObject改为你使用该CustomTableViewCell的ViewController文件名。)
(7)在使用该CustomTableViewCell的ViewController的头文件中写下如下代码,
@interface RootViewController:UIViewController
{
}
@property (nonatomic, strong) IBOutlet UITableViewCell *customCell;
@end
(8)在CustomTableViewCell.xib文件中,拖动File's Owner指向TableViewCell,如下图
(9)在弹出的界面中选择customCell选项,如下图
这就是为什么第(7)步骤要在RootViewController.h文件中声明一个IBOutlet关键字修饰的customCell变量的原因了。
(10)新建一个数据模型文件Person,继承自NSObject,其代码如下,
//Person.h文件
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *headStr;
@property (nonatomic, strong) NSString *speechText;
@end
//Person.m文件
#import "Person.h"
@implementation Person
@end
之所以叫它模型文件,是因为该文件中的属性与CustomTableViewCell上面的控件所需的内容一致,以MVC的视角来看Person就是M(Model),CustomTableViewCell就是V(View),而RootViewController就是C(Controller)。
(11)在RootViewController中初始化TableView数据源_persons
(12)在-tableView:cellForRowAtIndexPath:中使用CustomTableViewCell.xib创建cell
以上就是具体的步骤。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询