2016-02-11 4 views
0

У меня есть TableView и я хочу, чтобы изменить шрифт четных строк, Вот мой код:Swift - TableView, изменение шрифта четных строк жирным

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cellIdentifier = "ProductListTableViewCell" 
    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! ProductListTableViewCell 

    let product = productList[indexPath.row] 

    cell.productName.text = product.name 
    cell.productPrice.text = "\(product.price) manat" 

    if(indexPath.row % 2 == 0) { 
     cell.productName.font = UIFont.boldSystemFontOfSize(13.0) 
     cell.productPrice.font = UIFont.boldSystemFontOfSize(13.0) 
    } 
    return cell 
} 

когда я запускаю мой код, в начале все работает правильно, когда я просматриваю свой вид таблицы, все новые строки, появившиеся на экране, становятся жирным, как четным, так и старым. Что я делаю не так?

ответ

4

Помните, что вид таблицы повторного использования. Вот почему вы получаете их по методу dequeueReusableCellWithIdentifier(_:forIndexPath:).

Вы устанавливаете шрифт полужирным, если это строка с четным номером, но вы не устанавливаете ее в нормальное состояние, когда она представляет собой строку с нечетным номером. Если ячейка ранее использовалась для строки с четным номером и теперь используется для строки с нечетным номером, она по-прежнему имеет жирный шрифт.

let weight = (indexPath.row % 2 == 0) ? UIFontWeightBold : UIFontWeightRegular 
let font = UIFont.systemFontOfSize(13, weight: weight) 
cell.productName.font = font 
cell.productPrice.font = font 
+0

благодарит за ответ, все работает. Я должен был установить нечетные строки тоже – kakajan

1

Ваши многоразовые ячейки все выделены жирным шрифтом. Добавьте else в строку if% 2 == 0, чтобы вернуть ячейку к нормальному шрифту, когда она используется в нечетной строке.

+0

спасибо за ответ, как вы сказали, мне пришлось установить нормальный шрифт для нечетных строк тоже – kakajan