Удаление границ ячеек из раздела UITableView в групповом стиле
У меня есть UITableViewController, инициализированный сгруппированным стилем и имеющий несколько разделов. Для одного из этих разделов я хотел бы, чтобы его составные ячейки были полностью прозрачными и не имели границы. Я планирую назначить произвольное представление для каждой строки в этом разделе, но наличие этого настраиваемого представления, окруженного сгруппированной ячейкой таблицы, выглядит плохо:(
Следующее делает цвет фона ячейки черным вместо прозрачного... И я до сих пор не знаю, как избавиться от границы.
cell.backgroundColor = [UIColor clearColor];
Любые указатели? Спасибо!
Ответы
Ответ 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];
Работает