Линия разделителя 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 чтобы удалить строку.

tableview_separator