IOS 7 UITableView: это ошибка или это я? - программирование
Подтвердить что ты не робот

IOS 7 UITableView: это ошибка или это я?

См. прикрепленное изображение. В представлениях таблицы в iOS 7 UIKit рисует тонкую серая вертикальную линию между аксессуаром и регулятором переупорядочения. Однако при прокрутке в виде таблицы эта строка не отображается в некоторых ячейках. Он отсутствует в ячейках 1, 2 и 8 в прикрепленном изображении. Почему это? Как я могу это исправить?

enter image description here

4b9b3361

Ответ 1

У меня такая же проблема на iphone 6s plus, и я решил установить backgroundColor ячейки textLabel на clearColor

cell.textLabel.backgroundColor = [UIColor clearColor];

Глядя на мою проблему с reveal, я показал, что правая граница метки нарисовала эту вертикальную линию. введите описание изображения здесь

Ответ 2

Вы можете попробовать это, используя

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;
{
    cell.backgroundColor=[UIColor clearColor];
    cell.backgroundView=nil;
}

этот метод может быть полезен или что-то, что может быть в вашей ячейке, как какое-то изображение или что. или вы можете проверить, что с использованием выделения ячейки, как это место if (cell == nil) вместо if (1) и выделить ячейку eveytime

Ответ 3

У меня была такая же проблема, и мне удалось найти работу. Проблема, похоже, возникает, когда представление таблицы находится в режиме редактирования и деактивирует ячейку, которая была поставлена ​​в очередь, в то время как представление таблицы находилось в режиме без редактирования. Обход заключается в том, чтобы установить свойство редактирования ячейки в НЕТ сразу же после ее отмены. Вид таблицы вернет это свойство обратно в YES самостоятельно после того, как вы вернете ячейку в tableView: cellForRowAtIndexPath:.

cell = [tableView dequeueReusableCellWithIdentifier:cellReuseIdentifier forIndexPath:indexPath];
cell.editing = NO;

Ответ 4

Это работает для Swift 2.1. на iOS 9.2.1. в XCode 7.2.: Я протестировал код на iPhone 6s, а на 4-дюймовых устройствах разделитель не появился.

Я сделал подкласс UITableViewCell

Внутри required init(coder aDecoder: NSCoder) я сделал это:

required init(coder aDecoder: NSCoder)
{
    super.init(coder: aDecoder)!
    self.textLabel?.backgroundColor = UIColor.clearColor()
}

Возможно, вам понадобится установить цвет фона в override func drawRect(rect: CGRect) {}, поскольку это решение применяется только к созданию ячейки создателем интерфейса.

Решение работает на dev и симуляторе.