2014-01-24 3 views
1

У меня проблема с реализацией разделителя UITableViewCell.Как настроить представление Separator UITableView?

Как вы можете видеть на скриншоте, перед разделителем есть белый зазор, я думаю, это потому, что я установил цвет bg ячейки как светло-серый, а также я установил вставку разделителя как 53.

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

Так что в принципе мне очень сложно рисовать пиксель линии в конце ячейки.

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

Мой вопрос, как я могу получить доступ к виду сепаратора

Или

Есть ли у меня какие-либо других альтернатив осуществить то, что я хочу?

спасибо.

enter image description here

+1

Вместо белого, что вы хотите увидеть? Попробуйте установить цвет фона в виде стола на любой цвет, который вы хотите видеть вместо белого. – rmaddy

+0

Вы задаете цвет фона или вида содержимого каждой ячейки? –

+0

@esker Я думаю, что вы правы, я изменил цвет содержимого contentView. Сейчас он работает нормально. – TypingPanda

ответ

1

UITableView не предоставляет API-интерфейсы для доступа или изменить вид ячеек сепаратора непосредственно. Тем не менее, у него есть методы для изменения его цвета, стиля и т. Д. В большинстве случаев единственное решение для пользовательского разделителя - это сделать его самим или, лучше, установить свойство backgroundView ячейки на простое представление с линией subview или layer (subview, хотя и имеет некоторые накладные расходы, дает вам возможность автоматически автоматизировать автоматизацию с использованием автоматических масок или автоматического макета).

например.

UIView *backgroundView = [[UIView alloc] initWithFrame:cell.bounds]; 
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(backgroundView.bounds) - 1, CGRectGetWidth(backgroundView.bounds), 1.0f]; 

[lineView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin)]; 
[backgroundView addSubview:lineView]; 

cell.backgroundView = backgroundView; 
1

Используйте этот обходной путь:

Put UIImageView на нижнем краю ячейки и вы можете установить изображение в соответствии с вашими требованиями

ШАГ 1: Установить делитель в соответствии с изображением Set divider Y postion as per your cell

ШАГ 2: Устанавливает стиль разделителя на нет

Select TableView and from Attribute Inspector

-1

С прошивкой 7 вы можете использовать этот

cell.separatorInset = UIEdgeInsetsZero;

Смежные вопросы