2013-09-17 4 views
1

Я хочу отобразить N количество кнопок на одной ячейке таблицы. для этого я создал xib одной кнопки, и я хочу загрузить это число xib N в ячейку tableview.ios custom Uitableview cell with xib

Я использую следующий код, но он просто отображает xib один раз в каждой строке. Я использовал для цикла и прокрутки, чтобы иметь несколько видов xib одной строки, но он отображается только один раз.

Update: - Я изменить таблицу соперничают код, как это предлагается в ответ. но мой scrollview не работает горизонтально, и я получил дополнительное представление xib при запуске каждой строки. Я думаю, что это beacuse of [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"]; 

ответ

1

Создать один (Main) UIView, который вы добавляете все wagonView к, после цикла добавить "Main" вид на Scrollview.

2

переместите код за пределами if (cell==nil){}. Это условие вернет YES только в том случае, если оно не удалено.

+0

это работает, но scrollview не работает, и у меня есть дополнительный xib-просмотр при запуске каждой ячейки. Я думаю, что это из-за [self.table registerNib: [UINib nibWithNibName: @ "wagon" bundle: nil] forCellReuseIdentifier: @ " Cell "]; в поле зрения действительно загрузился. Пожалуйста, взгляните на главный вопрос, я снова обновляю вопрос. –

+0

@ Джон, вы можете мне помочь? –

Смежные вопросы