2016-04-03 2 views
2

У меня есть этот вид таблицы, которая работает, как я хочу, чтобы это, однако у меня есть проблема, где сноска перекрытием клетки в виде таблицы, как видно на this imageПредотвратить сноска перекрывающихся tableViewCell в UITableView - Swift

Как я могу предотвратить это? Это мой код для колонтитула

func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 

    let footerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 40)) 
    // self.myTableView.tableFooterView = footerView; 
    let sectionString = Array(foodArray.keys)[section] 


     for value in caloriesArray[sectionString]! { 
     calories += value 
     } 
     totalCalories += calories 

     print(calories) 
     print(totalCalories) 
     let label = UILabel(frame: CGRectMake(footerView.frame.origin.x - 15, footerView.frame.origin.y, footerView.frame.size.width, 20)) 

     label.textAlignment = NSTextAlignment.Right 

     label.text = "Total Calories: \(calories) " 

     footerView.addSubview(label) 
     calories = 0 
    return footerView 
    } 

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 

    return 20.0 
} 

@IBAction func addFoodTapped(sender: AnyObject) { 


} 


func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 


    let sectionString = Array(foodArray.keys)[indexPath.section] 

    foodArray[sectionString]?.removeAtIndex(indexPath.row) 
    caloriesArray[sectionString]?.removeAtIndex(indexPath.row) 
    print(foodArray) 
    viewDidAppear(true) 
    } 
+0

Из любопытства, почему вы вызываете 'viewDidAppear', когда вы нажимаете на ячейку? – ozgur

+0

ах Я что-то тестировал, но он был удален – user3423164

ответ

0

Попытки переопределить этот метод

override func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 
    return 44.0 
} 
+0

Это не исправить мою проблему. Есть ли способ сделать нижний колонтитул фиксированным в своем положении? – user3423164

0

Я знаю, что это старая нить, так что это больше для других, которые сталкиваются с этим (как я).

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

Обеспечить просмотр нижнего колонтитула цветом фона (footerView.backgroundColor = UIColor.white), таким образом очищая перекрытие.

или

Заменить раздел колонтитул с обычаем «Всего калории» клетки, которые вы добавляете в таблицу после последней ячейки в этой секции, эффективно действуя как колонтитул клетку.

0

Конечно, это накладывается. Вот как нижние и нижние колонтитулы работают в UITableView с. Например, вы можете установить footerView.backgroundColor на UIColor.gray, чтобы он выглядел лучше.

0

Просто добавьте некоторое дополнение к нижней части содержания, так что он не перекрывается с сноской:

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, FOOTER_HEIGHT, 0) 
0

Извините за задержку. Если вы изменили стандартное contentInsetAdjustmentBehavior таблицыView, вы должны настроить свойство tableView contentInset, чтобы принять во внимание общую высоту представлений в нижней части UITableView, например панель вкладок. Если для параметра ContentInsetAdjustmentBehavior установлено значение «автоматический» (или вы не изменили значение по умолчанию), установите для свойства clipsToBounds вашего нижнего колонтитула значение true, чтобы его дочерние представления не могли быть раскрашены за рамкой слоя нижнего колонтитула. Это должно решить вашу проблему.

Смежные вопросы