1

我想在表格视图的单个单元格上显示 N 个按钮。为此,我创建了一个按钮的 xib,我想将该 xib N 次加载到我的 tableview 单元格中。

我使用以下代码,但它只在每一行中显示一次 xib。我已经使用 for loop 和 scrollview 来拥有 xib 单行的多个视图,但它只显示一次。

更新 :-我按照答案中的建议更改了我的表格 vie 代码。但我的滚动视图没有水平工作,我在每一行的开头都有额外的 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;
   }

鉴于加载我注册笔尖

[[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"];
4

2 回答 2

2

将您的代码移到外面 if (cell==nil){}。仅当它未能出队时,此条件才会返回 YES。

于 2013-09-17T13:21:29.623 回答
1

创建一个(主)UIView,将所有 wagonView 添加到其中,在循环之后将“主”视图添加到 Scrollview。

于 2013-09-17T13:21:07.850 回答