Подтвердить что ты не робот

Удаление границ ячеек из раздела UITableView в групповом стиле

У меня есть UITableViewController, инициализированный сгруппированным стилем и имеющий несколько разделов. Для одного из этих разделов я хотел бы, чтобы его составные ячейки были полностью прозрачными и не имели границы. Я планирую назначить произвольное представление для каждой строки в этом разделе, но наличие этого настраиваемого представления, окруженного сгруппированной ячейкой таблицы, выглядит плохо:(

Следующее делает цвет фона ячейки черным вместо прозрачного... И я до сих пор не знаю, как избавиться от границы.

cell.backgroundColor = [UIColor clearColor];

Любые указатели? Спасибо!

4b9b3361

Ответ 1

ПРИМЕЧАНИЕ.. Это не работает в iOS7 и выше. Для iOS7 попробуйте этот ответ.

Для iOS6 и ниже, чтобы удалить сгруппированный фон из ячейки в ячейке просмотра сгруппированной таблицы:

Это не сработало

cell.backgroundView = nil; // Did Not Work

Это сделало

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];

Если вы переехали в ARC (я слышал, что это работает, но не проверял его)

cell.backgroundView = [UIView new];

Ответ 2

Вы должны установить

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

чтобы удалить границу ячеек.

Ответ 3

Следующий взлом работает в iOS 7 - пока.:)

Подкласс UITableViewCell и используйте эту ячейку для раздела, в котором не должно быть разделителей.
Переопределите метод addSubview в подклассе ячейки:

-(void)addSubview:(UIView *)view
{
    // The separator has a height of 0.5pt on a retina display and 1pt on non-retina.
    // Prevent subviews with this height from being added. 
    if (CGRectGetHeight(view.frame)*[UIScreen mainScreen].scale == 1)
    {
        return;
    }

    [super addSubview:view];
}

Ответ 4

Это то, с чем работала таблица со списком Grouped

[tableView setSeparatorColor: [UIColor clearColor]];

Ответ 5

Этот код работал у меня:)

[self.tableView setSeparatorColor:[UIColor clearColor]];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

Ответ 6

Установите для backgroundView ячейки значение nil. Для сгруппированной таблицы изображение ячейки является частью этого представления.

Ответ 7

Попробуйте использовать tableView.separatorColor = [UIColor clearColor];

И, не используйте tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

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

iOS, по-видимому, отличает создание объекта none и делает объект прозрачным

Ответ 8

cell.backgroundColor = [UIColor clearColor];

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];

Ответ 9

cell.backgroundView = [UIView new];

Работает как шарм! Проверено! iOS6

Ответ 10

Как и в iOS 8, установка атрибута разделителя на none также работает.

Get rid of cell border

Ответ 11

Настройка содержимого также позволяет избавиться от границы. Задайте свой пользовательский вид для cell.contentView.

Ответ 12

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

[tableViewOutlet setBackgroundView:nil];

в методе viewDidLoad.

Ответ 13

 UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
 backView.backgroundColor = [UIColor clearColor];
 cell.backgroundView = backView;
 cell.backgroundColor = [UIColor clearColor];
 [cell.contentView addSubview:imageView];

Ответ 14

Если у вас есть пользовательский UITableCellView, вы можете добавить следующий вид в свой вид, чтобы удалить фоновый вид.

- (void)setBackgroundView:(UIView *)backgroundView
{
    // We don't want background views for this cell.
    [super setBackgroundView:nil];
}

Ответ 15

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

Использование iOS6.1 с сгруппированным UITabelView с использованием ARC:

[tableView setSeparatorColor: [UIColor clearColor]];

Не работает

cell.backgroundView = [[UIView alloc] initWithFrame: CGRectZero];

Работает