Добавлено Autolayout в UITableViewCell, но я вижу неизвестное явление

Обновить

April 2019

Просмотры

16 раз

0

Я добавил Autolayout к элементам в UITableViewCell, но у меня есть неизвестная ошибка.

Все элементы, добавленные с AutoLayout будут выровнены по верхнему левому углу.

Если добавить Auto Layout в General Ярлык:введите описание изображения здесь

После сборки Результат: Общая метка перемещается в левый верхний угол введите описание изображения здесь

Это верно и для других предметов, а также.

Если добавить Auto Layout в общее, Total, Final Ярлык: введите описание изображения здесь

Там нет коды, связанной с ограничением. UITableViewCell также не имеет коды.

В View Controller:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "ProcDetailMoreCell", for: indexPath) as! ProcDetailMoreCell

    return cell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return CGFloat(175)
}

Я не знаю, почему это происходит. Пожалуйста, помогите мне понять, почему эти результаты.

1 ответы

0

You are doing two contradictory things. On the one hand you are dictating the height of the cell:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return CGFloat(175)
}

On the other hand, you have constraints between the General label and the top and the bottom. This means that if the height you give (175) is different from the height that you designed in, even by a tiny bit, there is going to be a conflict between the sum of the constraints (General to top, height of General, General to bottom) and the cell height (175), and the runtime is going to have to throw away some of your constraints. That seems to be what is happening. You should see a notice in the Console about this.

Anyway, just delete the constraint between the General label and the bottom of the cell and things should be much better. (You might also want to delete the constraint between the General label and right side of the cell.)