it-swarm.com.ru

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

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

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

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView setSeparatorColor:[UIColor blackColor]];
    return 65;
}
149
fuzzygoat
- (void)viewDidLoad
{
   [self.tableView setSeparatorColor:[UIColor myColor]];
}

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

Swift 4.2

tableView.separatorColor = UIColor.red
309
Helen

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

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

enter image description here

54
Myxtic

Swift версия:

override func viewDidLoad() {
    super.viewDidLoad()

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

Попробуйте + (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"

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

10
Nitesh Borad

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

Swift 3, xcode version 8.3.2

2
Giang

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

 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
        }
    }

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

2
ezefire