2015-04-01 2 views
4

Это как населен мой стол:Таблица вид клеток перезагружать содержимое первой ячейки

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    CellNewsInfo *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    if (!cell) { 

     cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]; 
    } 
    // Set up the cell 
    int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1]; 
    NSString *titleArticle=[[stories objectAtIndex: storyIndex] objectForKey: @"title"]; 
    titleArticle = [titleArticle stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

    if (indexPath.row==0) { 
     scr=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 200)]; 
     scr.tag = 1; 
     scr.autoresizingMask=UIViewAutoresizingNone; 
     [cell addSubview:scr]; 
     [self setupScrollView:scr]; 
     UIPageControl *pgCtr = [[UIPageControl alloc] initWithFrame:CGRectMake(120, 170, 80, 36)]; 
     [pgCtr setTag:12]; 
     pgCtr.backgroundColor = [UIColor clearColor]; 
     pgCtr.numberOfPages=5; 
     pgCtr.tintColor=[UIColor redColor]; 
     pgCtr.pageIndicatorTintColor=[UIColor blueColor]; 
     self.pageControl.hidden=YES; 
     pgCtr.currentPageIndicatorTintColor = [UIColor redColor]; 
     pgCtr.autoresizingMask=UIViewAutoresizingNone; 
     [cell addSubview:pgCtr]; 
    } 
    else{ 
    cell.title.text=titleArticle; 
    cell.title.numberOfLines=2; 

почему, когда я прокручивать его, первая ячейка перезагрузки? Я просто хочу, чтобы этот прокрутка отображался только один раз в начале.

+0

Добавьте свой код в if (! cell), а затем попробуйте –

ответ

3

Причина, по которой ваш scrollview добавляется снова, заключается в том, что ячейки повторно используются после их освобождения.

Вы должны смотреть создавать свои собственные клетки, если вы собираетесь отображать типы нескольких ячеек в одном Tableview, или даже с использованием двух различных идентификаторов ячеек в зависимости от того, если строка 0.

CellNewsInfo *cell; 
if (indexPath.row == 0) { 
    cell = [tableView dequeueReusableCellWithIdentifier:@"scrollCell" forIndexPath:indexPath]; 

    if ([cell viewWithTag:1]) { 
     scr = [cell viewWithTag:1]; 
    } 
    else { 
     scr=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 200)]; 
     scr.tag = 1; 
    } 
    // continue customization here with scrollview 
} 
else { 
    cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; 
    // continue customization here without scroll view 
} 

return cell; 
+0

ваш идее работает, спасибо, но сейчас происходит другое. После того, как я прокрутился, и я вернулся к вершине, автоматический прокрутка не работает. Кажется, есть 2 вида прокрутки. –

+0

Перед добавлением прокрутки в ячейку проверьте и убедитесь, что она уже есть. Проверьте, содержит ли ячейка subview тег, который вы ему указываете, и если да, продолжайте присваивать значения, если это не так, создайте и добавьте их перед назначением им значений. –

+0

Благодарим вас за ответ. –