Содержимое ячейки TableView не смещается в режиме редактирования iOS 6

У меня есть подкласс UITableViewCell. Вот моя установка

Я использовал Autolayout. Теперь, когда пользователь проводит пальцем по ячейке, я вижу кнопку "Удалить", но она перекрывает мою правую сторону изображения. Содержимое ячейки не меняется. Вот мой код

    #pragma mark - Table view data source

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.recentItemsArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *identifier = @"ProductCell";
    ProductCell *cell = (ProductCell*)[tableView dequeueReusableCellWithIdentifier:identifier];

    if (cell == nil)
    {
        NSArray *cellArray = [[NSBundle mainBundle] loadNibNamed:@"ProductCell" owner:self options:nil];
        cell=[cellArray objectAtIndex:0];
        tableView.separatorColor = [UIColor clearColor];
    }

    Product *product = [self.recentItemsArray objectAtIndex:indexPath.row];
    cell.lblProductName.text = product.name;
    cell.lblNoOfBids.text = [NSString stringWithFormat:@"%@",product.numberOfBids];
    cell.lblBuyItNowPrice.text = [NSString stringWithFormat:@"%@ %@",CURRENCY_TYPE,product.buyItNowPrice];
    cell.lblTimeRemaining.text = product.timeRemaining;
    cell.lblLatestBid.text = [NSString stringWithFormat:@"%@ %@",CURRENCY_TYPE,product.currentBidPrice];
    cell.lblUserName.text = product.sellerName;

    return cell;
}

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 110.0f;
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}

// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        //add code here for when you hit delete
        [CommonUtils showAlertWithTitle:@"Alert" andMessage:@"Do you want to delete this product?"];
    }
}

Я видел несколько вопросов о Stackru, но не получил никакого решения.

Может ли кто-нибудь сказать мне, что я делаю не так? Любая помощь высоко ценится. Спасибо

Update:: Я попытался добавить UIImageView программно. неподвижные изображения не смещаются

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

        UIImageView* imageView = [[UIImageView alloc]initWithFrame:CGRectMake(260, 0, 50, 60)];
        imageView.backgroundColor = [UIColor yellowColor];
        [cell.contentView addSubview:imageView];


        UIImageView* imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(20.0, 0, 60, 60)];
        imageView1.backgroundColor = [UIColor redColor];
        [cell.contentView addSubview:imageView1];
    }

    //cell.textLabel.text = @"ABC";
    // Configure the cell...

    return cell;
}

1 ответ

Это случилось со мной. Убедитесь, что одно свойство ячейки имеет то же имя, что и другое свойство в представлении, где находится UITableView.

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