编辑单元格之间的行?

时间:2015-08-24 15:34:16

标签: ios objective-c uitableview

检查链接中附带的图片。前两个单元格之间的线是缩进的,但是底部两个单元格之间的线条一直延伸。前两个单元格是一个单独的部分,而不是底部单元格(所以有两个部分,前一个编码器设置它的方式,这就是它必须是......)。我试图让底部两个单元格之间的线条与前两个单元格之间的线条相同(缩进)。最好的方法是什么? Pic已附上

这是cellForRowAtIndexPath方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"InAppPurchaseViewCellIdentifer";
    //    InAppPurchaseViewCell *cell = (InAppPurchaseViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    InAppPurchaseViewCell *cell = (InAppPurchaseViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    NSArray *currentSectionArray = nil;

    switch (indexPath.section) {
        case 0:
            currentSectionArray = _productGroupZeroArray;
            break;
        case 1:
            currentSectionArray = _productGroupOneArray;
            break;
        case 2:
            currentSectionArray = _productGroupTwoArray;
            break;
        case 3:
            currentSectionArray = _productGroupThreeArray;
            break;
        default:
            break;
    }

    NSDictionary *currentProductDictionary = [currentSectionArray objectAtIndex:indexPath.row];
    NSString *currentProductIdString = [currentProductDictionary objectForKey:kInAppOptionProductID];

    __block SKProduct *currentProduct = nil;

    [_skProductArray enumerateObjectsUsingBlock:^(SKProduct *product, NSUInteger idx, BOOL *stop) {
        if ([product.productIdentifier isEqualToString:currentProductIdString]) {
            currentProduct = product;
            *stop = YES;
        }
    }];

    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
        cell.productNameLabel.backgroundColor = [UIColor groupTableViewBackgroundColor];
        cell.backgroundColor = [UIColor groupTableViewBackgroundColor];
        cell.productNameLabel.textColor = [UIColor darkGrayColor];
        cell.priceLabel.backgroundColor = [UIColor colorWithRed:249.0/255.0 green:198.0/255.0 blue:6.0/255.0 alpha:1.0];
        cell.priceLabel.textColor = [UIColor whiteColor];
    } else {
        cell.productNameLabel.backgroundColor = [UIColor groupTableViewBackgroundColor];
        cell.backgroundColor = [UIColor groupTableViewBackgroundColor];
        cell.productNameLabel.textColor = [UIColor darkGrayColor];
        cell.priceLabel.backgroundColor = [UIColor colorWithRed:249.0/255.0 green:198.0/255.0 blue:6.0/255.0 alpha:1.0];
        cell.priceLabel.textColor = [UIColor whiteColor];
    }

    cell.userInteractionEnabled = YES;

    if ([[InAppPurchaseHelper sharedInstance] productPurchased:currentProduct.productIdentifier]) {
        if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
            cell.priceLabel.textColor = [UIColor colorWithRed:0.0 green:0.576 blue:0.0 alpha:1.0];
        } else {
            cell.priceLabel.backgroundColor = [UIColor colorWithRed:0.0 green:0.576 blue:0.0 alpha:1.0];
        }
        cell.priceLabel.text = @"Paid";
        cell.userInteractionEnabled = YES;
    } else {
        [_priceFormatter setLocale:currentProduct.priceLocale];
        NSString *priceString = [_priceFormatter stringFromNumber:currentProduct.price];
        cell.priceLabel.text = priceString;
    }

    cell.frame = CGRectOffset(cell.frame, 10, 10);

    if (currentSectionArray == _productGroupZeroArray) {
        cell.productNameLabel.text = [tableData objectAtIndex:indexPath.row];
    }else if (currentSectionArray == _productGroupOneArray) {
        cell.productNameLabel.text = @"Annual Subscription:\nTestBank for every exam!";
    }

    return cell;
}

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试:

[tableView setSeparatorInset:UIEdgeInsetsMake(spaceValue, 0, 0, 0)];

希望这可以提供帮助。

答案 1 :(得分:0)

tableView 分隔符位于部分之间与单元分隔符不同。

你可以

  • 更改第一个单元格的分隔符插入以匹配该部分 分隔符,或

  • 更新代码以对相同中的所有单元格进行分组 部分。

我知道你不想做任何一个,但这可以在Apple支持的范围内工作。否则,您可能必须隐藏Apple的分隔符并绘制自己的分隔符。