如何使用xib为某一控件添加子控件

如何使用xib为某一控件添加子控件,第1张

通过以下步骤可以完成

1,创建一个UIViewController

2,定义你想要的事件和属性,并且指定成IBOutlet和IBAction

3,再创建一个xib文件

4,进入这个新的xib文件,编辑File's Owner,将他的类型设置成我们创建的UIViewController

5,从这时候开始UIViewController就对应了两个xib文件了,这样我们可以通过编辑器来绑定内容。

6,随便加一些按钮,绑定些内容

7,在viewDidLoad方法里加入载入子控件的代码

- (void)viewDidLoad {

[super viewDidLoad]

NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"sub" owner:self options:nil]

UIView *subView = [nibViews objectAtIndex:0]

[self.view addSubview:subView]

}

- (void)viewDidLoad {[super viewDidLoad]NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"sub" owner:self options:nil]UIView *subView = [nibViews objectAtIndex:0][self.view addSubview:subView]}

8,执行,你会看到子控件被载入到了UIViewController的View里了。并且,在编辑器里绑定的内容都是有效的。成功动态增加了UIViewController的内容。

xib文件的创建和添加控件

创建一个xib文件

这里写图片描述

xib中拖入一个tableViewCell 在将需要添加的控件拖入到cell中

这里写图片描述

创建一个继承于UITableViewCell的类,该类用来管理Xib cell中的控件 并且在.m文件中添加以下代码 用来和Xib cell中的空间进行托线

将xib的class改为我们创建的类

这里写图片描述

2.将xib cell 中的控件和我们创建的类进行连线

创建一个模型类用来 显示cell中的内容

在我们创建的类中 设置模型属性,并且重写setter方法,将模型属性加载到cell上

@property(nonatomic,strong)LRQQFriendMessage *qfm

- (void)setQfm:(LRQQFriendMessage *)qfm

实现类方法 创建我们的cell

+ (instancetype)qqFriendMessageCellWithTableView:(UITableView *)tableView

{

NSString *ID = @"QQFriendMessage"

LRQQFriendMessageCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]

if (cell == nil) {

cell = [[[NSBundle mainBundle] loadNibNamed:@"LRQQFriendMessageCell" owner:nil options:nil] lastObject]

//这里需要注意的是为什么是lastObject 应为该Xib中只有一个元素

}

return cell

}

在控制器实现tableView的数据源方法,加载我们设置的cell就ok了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11510998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存