我想在tableview的单个单元格上显示N个按钮。 因为我已经创建了一个按钮的xib,我想将xib N加载到我的tableview单元格中。
我使用以下代码,但它只是在每一行显示xib一次。 我已经使用for循环和scrollview来获得xib单行的多个视图,但它只显示一次。
更新 : - 我按照回答中的建议更改了我的表格代码。但是我的scrollview没有水平工作,我在每一行的开头都有额外的xib视图。
我认为这是[self.table registerNib:[UINib nibWithNibName:@"wagon" bundle:nil] forCellReuseIdentifier:@"Cell"];
在视图中的负载。我可以解决这个问题吗?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell==nil) {
}
cellScrollViewClass * scrollView = [[cellScrollViewClass alloc] initWithFrame:CGRectMake(MyPadding,14,myWidth-MyPadding*2,200)]; // Scrollview
scrollView.scrollEnabled=YES;
scrollView.userInteractionEnabled=YES;
scrollView.showsHorizontalScrollIndicator=NO;
scrollView.contentSize = CGSizeMake((336*NumberofCell),187); // To make ContentSize for item to scroll
for (int i = 0; i < NumberofCell; i++)
{ // for loop to add 2 wagon view and 1 engine view on Left hand side Custom cell.
UIView *nib = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
UIView *wagonView = [[UIView alloc]initWithFrame:CGRectMake((385*i)-200, 18, 385, 163)];
[wagonView addSubview:nib];
[scrollView addSubview:wagonView];
}
cell.accessoryView=scrollView;
return cell;
}
在视图中加载我注册nib
[[self table]setDelegate:self];
[[self table]setDataSource:self];
[self.view addSubview:table];
[table setShowsHorizontalScrollIndicator:NO];
[table setShowsVerticalScrollIndicator:NO];
table.separatorColor = [UIColor clearColor];
[table setContentInset:UIEdgeInsetsMake(-15,0,0,0)];
[self.table registerNib:[UINib nibWithNibName:@"wagon" bundle:nil] forCellReuseIdentifier:@"Cell"];
答案 0 :(得分:2)
将您的代码移到if (cell==nil){}
之外。只有当它无法出列时,此条件才会返回YES。
答案 1 :(得分:1)
创建一个(主要)UIView,在循环之后将所有wagonView添加到Scrollview中。