Заголовок раздела повторяется при увеличении размера UITextView в ячейках UITableView.

Я играю с этой проблемой целый день, и я попробовал много способов решить эту проблему, но пока не удалось. У меня есть таблица с 3 пользовательскими ячейками, и я добавил заголовок раздела для последних двух разделов. Вот снимок экрана. Заголовок Пол повторяется

который показывает, что последний заголовок раздела повторяется, когда я ввожу текст в TextView. Мой TextView доступен для редактирования, и я отключил прокрутку, чтобы настроить размер просмотра текста в соответствии с размером текста.

Вот код

    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
        return 3;
    }

    -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
    {
        NSArray *titleArray = @[@"",@"About You",@"Gender"];

        NSString *titleHeading = [titleArray objectAtIndex:section];

        return titleHeading;
    }

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return section == 0 ? CGFLOAT_MIN : 35;
}

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

        NSString *identifier = [NSString stringWithFormat:@"cell%ld,%ld",indexPath.section, indexPath.row];
        id cell = [tableView dequeueReusableCellWithIdentifier:identifier];

if (indexPath.section == 1)
            {
                ProfileAboutCell *cellObj = [tableView dequeueReusableCellWithIdentifier:identifier];
                if (!cellObj)
                {
                    [_tableView registerNib:[UINib nibWithNibName:@"ProfileAboutCell" bundle:nil] forCellReuseIdentifier:identifier];
                    cellObj = [tableView dequeueReusableCellWithIdentifier:identifier];
                }
                cellObj.selectionStyle = UITableViewCellSelectionStyleNone;

                //[cellObj.txtAboutYou layoutIfNeeded];
        cellObj.txtAboutYou.delegate = self;
        cellObj.lbl = [[UILabel alloc] initWithFrame:CGRectMake(5.0, 0.0,cellObj.txtAboutYou.frame.size.width - 10.0, 34.0)];
        cellObj.lbl.text = @"About You";
        [cellObj.lbl setBackgroundColor:[UIColor clearColor]];
        [cellObj.lbl setTextColor:[UIColor lightGrayColor]];
        [cellObj.txtAboutYou addSubview:cellObj.lbl];
    //        [cellObj.txtAboutYou setText:[kUserDefaults valueForKey:kAbout]];
        //[cellObj.txtAboutYou sizeToFit];



                cell = cellObj;
            }

        return cell;
        }

Метод делегирования TextView.

-(void)textViewDidChange:(UITextView *)textView
{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:1];
    ProfileAboutCell *cell = [_tableView cellForRowAtIndexPath:indexPath];

    if(![textView hasText]) {
        cell.lbl.hidden = NO;
    }
    else{
        cell.lbl.hidden = YES;
    }
    NSInteger len = textView.text.length;
    cell.lblChar.text=[NSString stringWithFormat:@"%li",500-len];

    [_tableView beginUpdates];
    [_tableView endUpdates];
}

Я пробовал это решение # SO, но без помощи. Любая помощь будет высоко ценится в этом направлении. Заранее спасибо.

1 ответ

Насколько я понимаю, проблему можно решить, установив заголовки разделов в "titleForHeaderInSection" так же, как вы устанавливаете ячейки в "cellForRowAtIndexPath" для каждого раздела, поэтому разделы, для которых вы не устанавливаете заголовки, не вызовут никаких проблем.,

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    NSArray *titleArray = @[@"",@"About You",@"Gender"];



if (indexPath.section == 1) {
        NSString *titleHeading = [titleArray objectAtIndex:1];
        return titleHeading;
}
 if (indexPath.section == 2) {
        NSString *titleHeading = [titleArray objectAtIndex:2];

        return titleHeading;
}

    }
Другие вопросы по тегам