Ответ 1
Задайте separatorStyle
таблицы view UITableViewCellSeparatorStyleNone
. Добавьте изображение разделителя в виде подсмотра в каждую ячейку и правильно настройте кадр.
Как изменить строку разделителя, которая появляется в конце каждой ячейки в UITableView? Я хочу иметь изображение, которое представляет собой изображение линии тонкого разделителя.
Задайте separatorStyle
таблицы view UITableViewCellSeparatorStyleNone
. Добавьте изображение разделителя в виде подсмотра в каждую ячейку и правильно настройте кадр.
Попробуйте это
Цель 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")!)
Сначала вы можете написать код:
{ [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;
}
}
Задайте цвет разделителя, который будет иметь рисунок с вашим изображением.
в viewDidLoad
:
self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mySeparatorImage"]];
Мой проект основан на iOS 7 Это помогает мне
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
Затем поставьте subview в ячейку как разделитель!
Вы можете добавить UIImageView, который, например, на 1 точку выше и ширину кадра ячейки, а затем установить его начало в нижний левый угол ячейки.
Попробуйте следующее:
UIImageView *separator = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]];
[cell.contentView addSubview: separator];
Это пример того, как я получил его, чтобы работать очень хорошо.
Не забудьте установить стиль разделителя для представления таблицы не равным.
Это определенно помогает. За работой. но установите разделитель "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];
Свифт 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
У вас есть 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];
Ниже приведен альтернативный способ добавления отдельной строки разделителя в 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];
вы можете попробовать:
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;
}
Самый простой способ добавить разделительную линию под каждой ячейкой tableview можно сделать в самой раскадровки. Сначала выберите табличное представление, затем в инспекторе атрибутов выберите свойство линии разделителя как одну строку. После этого выберите вставку разделителя для настройки и обновите левую вставку слева.
Вот способ сделать это через раскадровку в XCode 10.2.1. По умолчанию для разделителя default
строка. Установите значение none
чтобы удалить строку.