Как изменить строку разделителя, которая появляется в конце каждой ячейки в UITableView? Я хочу иметь изображение, которое представляет собой изображение линии тонкого разделителя.
Линия разделителя UITableView
Ответ 1
Задайте separatorStyle
таблицы view UITableViewCellSeparatorStyleNone
. Добавьте изображение разделителя в виде подсмотра в каждую ячейку и правильно настройте кадр.
Ответ 2
Попробуйте это
Цель C
[TableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
[TableView setSeparatorColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"[email protected]"]]];
Swift
tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
tableView.separatorColor = UIColor(patternImage: UIImage(named: "YOUR_IMAGE_NAME")!)
Ответ 3
Сначала вы можете написать код:
{ [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];}
после этого
{ #define cellHeight 80 // You can change according to your req.<br>
#define cellWidth 320 // You can change according to your req.<br>
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"seprater_line.png"]];
imgView.frame = CGRectMake(0, cellHeight, cellWidth, 1);
[customCell.contentView addSubview:imgView];
return customCell;
}
}
Ответ 4
Задайте цвет разделителя, который будет иметь рисунок с вашим изображением.
в viewDidLoad
:
self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mySeparatorImage"]];
Ответ 5
Мой проект основан на iOS 7 Это помогает мне
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
Затем поставьте subview в ячейку как разделитель!
Ответ 6
Вы можете добавить UIImageView, который, например, на 1 точку выше и ширину кадра ячейки, а затем установить его начало в нижний левый угол ячейки.
Ответ 7
Попробуйте следующее:
UIImageView *separator = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]];
[cell.contentView addSubview: separator];
Это пример того, как я получил его, чтобы работать очень хорошо.
Не забудьте установить стиль разделителя для представления таблицы не равным.
Ответ 8
Это определенно помогает. За работой. но установите разделитель "none" из инспектора атрибутов. Напишите следующий код в методе cellForRowAtIndexPath
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0,
cell.contentView.frame.size.height - 1.0,
cell.contentView.frame.size.width, 1)];
lineView.backgroundColor = [UIColor blackColor];
[cell.contentView addSubview:lineView];
Ответ 9
Свифт 3/4
Пользовательский разделитель, поместите этот код в пользовательскую ячейку, которая является подклассом UITableViewCell (или в CellForRow или WillDisplay TableViewDelegates для не пользовательских ячеек):
let separatorLine = UIView.init(frame: CGRect(x: 8, y: 64, width: cell.frame.width - 16, height: 2))
separatorLine.backgroundColor = .blue
addSubview(separatorLine)
в методе viewDidLoad:
tableView.separatorStyle = .none
Ответ 10
У вас есть 2 варианта изменения стиля разделителя uitableview, если вы хотите изменить параметры по умолчанию, которые не являются разделителями, сплошной линией или линией травления.
-
Самый простой из них состоит в том, что в фоновом изображении линии разделителя к каждому виду ячейки. Вы можете проверить, где находится ваша ячейка в tableview, чтобы применить правильное фоновое изображение, которое даст вам либо разделительную линию на верхней части ячейки, либо внизу клетка.
Установите стиль разделителя равным none в viewDidLoad вашего TableView:
[self.tableView setSeparatorStyle: UITableViewCellSeparatorStyleNone];
Установите фоновое изображение в (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) функция indexPath
UIImage* yourBgImg = [[UIImage imageNamed:@"bgImage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)];
cell.backgroundView = [[UIImageView alloc] initWithImage: yourBgImg];
проверьте позицию вашей ячейки в разделе со следующим:
Раздел NSIntegerRows = [tableView numberOfRowsInSection: [indexPathsection]]; NSInteger row = [indexPath row];
- Добавить разделительную линию как ячейку. Недавно я нашел сообщение для этого Вот: http://www.dimzzy.com/blog/2012/01/separator-cells-for-uitableview/#disqus_thread
Ответ 11
Ниже приведен альтернативный способ добавления отдельной строки разделителя в UITableView
путем создания CALayer
для изображения и использования этого в качестве разделительной строки.
//создаем CALayer для изображения для строки разделителя
CALayer *separator = [CALayer layer];
separator.contents = (id)[UIImage imageNamed:@"myImage.png"].CGImage;
separator.frame = CGRectMake(0, 54, self.view.frame.size.width, 2);
[cell.layer addSublayer:separator];
Ответ 12
вы можете попробовать:
UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)];
separator.backgroundColor = myColor;
[cell.contentView addSubview:separator];
или
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]];
imageView.frame = CGRectMake(0, 100, 320, 1);
[customCell.contentView addSubview:imageView];
return customCell;
}
Ответ 13
Самый простой способ добавить разделительную линию под каждой ячейкой tableview можно сделать в самой раскадровки. Сначала выберите табличное представление, затем в инспекторе атрибутов выберите свойство линии разделителя как одну строку. После этого выберите вставку разделителя для настройки и обновите левую вставку слева.
Ответ 14
Вот способ сделать это через раскадровку в XCode 10.2.1. По умолчанию для разделителя default
строка. Установите значение none
чтобы удалить строку.