我尝试将UITableView打包为我自己的。 代码是:
@interface OPTableView : UIView<UITableViewDelegate,UITableViewDataSource>
{
NSMutableArray *_dataSource;
id<OPTableviewDelegate>_delegate;
}
@property(retain,nonatomic)id<OPTableviewDelegate>delegate;
@property(retain,nonatomic)NSMutableArray *dataSource;
的.m:
@implementation OPTableView
@synthesize delegate=_delegate;
@synthesize dataSource=_dataSource;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
tableView=[[UITableView alloc] initWithFrame:frame];
tableView.delegate=self;
tableView.dataSource=self;
_dataSource=[NSMutableArray array];
[self addSubview:tableView];
[tableView release];
}
return self;
}
#pragma table delegate
- (void)tableView:(UITableView *)tab didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}
当我创建OPTableView时,它可以在屏幕上显示。但问题是,当我选择一个表时,它不会调用委托方法:didSelectRowAtIndexPath,但更糟糕的是,它会崩溃。
答案 0 :(得分:0)
尝试将单元格的选择样式设置为某些非none值。另请注意,您应该实现表中所有必需的委托消息 - 您是否这样做了?
答案 1 :(得分:0)
什么是OPTableViewDelegate?您的表的委托类型为OPTableViewDelegate,而不是UITableViewDelegate。
答案 2 :(得分:0)
我删除了这段代码“_dataSource = [NSMutableArray array];”,一切正常。
谢谢大家。