UITableView, цвет разделителя, где установить?

Я добавил a UITableView в IB и установил "делегат" и "источник данных", и все работает хорошо. То, что я хотел сделать дальше, это изменить цвет разделителя, но единственный способ, которым я мог это сделать, - добавить метод к одному из обратных вызовов делегатов, есть ли лучшее место, которое я должен поставить?

У меня нет этого в данный момент, но я думал, что, возможно, мне нужно добавить "iVar" из моего контроллера, который я могу связать с UITableView в IB, а затем установить цвет разделителя в viewDidload

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView setSeparatorColor:[UIColor blackColor]];
    return 65;
}

Ответ 1

- (void)viewDidLoad
{
   [self.tableView setSeparatorColor:[UIColor myColor]];
}

Надеюсь, что это поможет - вам понадобится self. для доступа к нему, помните.

Ответ 2

Теперь вы сможете сделать это непосредственно в IB.

Не уверен, хотя, если это было доступно, когда вопрос был опубликован изначально.

enter image description here

Ответ 3

версия Swift:

override func viewDidLoad() {
    super.viewDidLoad()

    // Assign your color to this property, for example here we assign the red color.
    tableView.separatorColor = UIColor.redColor()
}

Ответ 4

Попробуйте + (instancetype) внешний вид UITableView:

Objective-C:

[[UITableView appearance] setSeparatorColor:[UIColor blackColor]]; // set your desired colour in place of "[UIColor blackColor]"

Swift 3.0:

UITableView.appearance().separatorColor = UIColor.black // set your desired colour in place of "UIColor.black"

Примечание. Изменение отражает все таблицы, используемые в приложении.

Ответ 5

Если вы просто хотите установить один и тот же цвет для каждого разделителя, и он непрозрачен, вы можете использовать:

 self.tableView.separatorColor = UIColor.redColor()

Если вы хотите использовать разные цвета для разделителей или очистить цвет разделителя или использовать цвет с альфа.

БУДЬТЕ ОСТОРОЖНЫ: вы должны знать, что в разделителе есть backgroundView, который имеет цвет по умолчанию.

Чтобы изменить его, вы можете использовать следующие функции:

    func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
        if(view.isKindOfClass(UITableViewHeaderFooterView)){
            var headerView = view as! UITableViewHeaderFooterView;
            headerView.backgroundView?.backgroundColor = myColor

           //Other colors you can change here
           // headerView.backgroundColor = myColor
           // headerView.contentView.backgroundColor = myColor
        }
    }

    func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
        if(view.isKindOfClass(UITableViewHeaderFooterView)){
            var footerView = view as! UITableViewHeaderFooterView;
            footerView.backgroundView?.backgroundColor = myColor
           //Other colors you can change here
           //footerView.backgroundColor = myColor
           //footerView.contentView.backgroundColor = myColor
        }
    }

Надеюсь, что это поможет!

Ответ 6

Swift 3, xcode version 8.3.2, раскадровка- > выберите таблицу View- > inspector- > Separator.

Swift 3, xcode version 8.3.2