Вычисление высоты ячейки


#1

НДоброго всем времени.
Столкнулся с такой проблемой.
При реализации автоподбора высоты ячейки, как в уроке 25,
прописал в дид лоад
tableView.estimatedRowHeight = tableView.rowHeight
tableView.rowHeight = UITableViewAutomaticDimension, но xcode выдает ошибку на обе строки “Ambiguous reference to member ‘tableView(_:numberOfRowsInSection:)’”

Без этих строчек никаких ошибок нет и все отлично работает и отображается в таблице
ПОдскажите, пожалуйста, в какую сторону копать.


#2

Создан оутлет для таблицы? Datasource/Delegate указаны у таблицы?


#3

Все создано. Таблица и все, что в ней должно быть отоьражается нормально.


#4

Можно увидеть код как объявлена таблица в контроллере?


#5

import UIKit

class finishedViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

override func viewDidLoad() {
super.viewDidLoad()

// tableView.estimatedRowHeight = tableView.rowHeight
// tableView.rowHeight = UITableViewAutomaticDimension

    finishedView.image = UIImage(named: finImage)
    titleText.text = title
    
    
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    
}
func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 2
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  

let cell = tableView.dequeueReusableCell(withIdentifier: "finCell", for: indexPath) as!finishedViewCell
    
    switch indexPath.row {
    case 0:
        cell.finText.text = composition
    case 1:
        cell.finText.text = process
    default:
        break
    }
    return cell
}

}

закомментил две стоки, которые вызывают ошибку


#6

Я не вижу оутлета для таблицы.
Должно быть что-то вроде
@IBOutlet weak var tableView: UITableView!

И к этому оутлету должна быть привязана таблица в билдере.


#7

Точно! ПРо атлет я пропустил.
Теперь ошибки пропали.
Спасибо!!!

нужно тренировать внимание.


#8

Скорее всего в уроке использовался UITableViewController, а не UIViewController.
Если использовать UITableViewController, у него уже определена таблица у родительского контроллера как tableView.


#9

Нет, в уроке был именно UIViewController. Просто я был невнимателен, там про атлет говорилось.
Все заработало, но возникла другая пробам. Текст выводится не весь. Обрезаются последние несколько слов.


#10

Это уже другой вопрос. В IB нужно выставить число строк в 0. После этого когда в коде вставляется текст в Label, нужно у этого элемента вызвать sizeToFit().