使用xib自定义UIView和UITableViewCell以方便布局的方法

转载自: http://www.cnblogs.com/haipingwu/archive/2011/03/18/1987972.html

UIView:

1. 首先,新建一个类,继承自UIView。
2. 创建一个空的xib文件,文件名最好和前面类名一样。在xib中添加一个View,把加载类改成第一步继承的类。
3. 在xib中添加相应的控件,在第一步创建的类中添加相应的IBOutlet,并且连上相应的控件。
4. 使用如下:

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"xib的名字" owner:self options:nil];
类名 *View = [nib objectAtIndex:0];

注意:在使用View的时候,如果没有哪个操作具有retain的功能,最好显示地把View retain一次,如果有addObject,addSubview之类的操作则不用。反正记住一点,这个View不是用alloc、copy等创建的,是个自动释放的对象,要特意保留一下它,要不然在以后用到的时候会出错。

UITableViewCell:

新建一个UIViewController,命名为CellViewController, 修改这个UIViewController的基类,使他从UITableViewCell继承。
打开CellViewController的xib 文件。删除xib中的view,添加一个UITableViewCell到xib窗口中,在xib中修改刚刚添加的UITableViewCell的加载类为CellViewController。可以在xib中加入控件。连上IBOutlet。
.h
         
         
1 @interface CellViewController : UITableViewCell {
2 IBOutlet UILabel * lb;
3 }
4 @property(nonatomic, retain)UILabel * lb;
5 @end

.m

    
    
1 @implementation CellViewController
2 @synthesize lb;
3 @end

使用的时候,在cellForRowAtIndexPath函数中如下:

复制代码
    
    
1 - (UITableViewCell * )tableView:(UITableView * )tableView cellForRowAtIndexPath:(NSIndexPath * )indexPath {
2 CellViewController * cell;
3 static NSString * CellIdentifier = @" CustomAccountStateCellViewControllerIdentifier " ;
4 cell = (CellViewController * )[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
5 if ( cell == nil )
6 {
7 NSArray * nib = [[NSBundle mainBundle] loadNibNamed: @" CellViewController " owner:self options:nil] ;
8 cell = [nib objectAtIndex: 0 ];
9 }
10
11 cell.lb.text = @" ABC " ;
12 return cell;
13 }
复制代码

当然要添加自定义Cell的头文件到这里来。
运行程序。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值