回答編集履歴

1 ちなみにさらに

fuzzball

fuzzball score 16299

2018/10/23 12:52  投稿

```swift
if labelHeight < 300.0 {
   inputBaseView.bottomAnchor.constraint(equalTo: cell.bottomAnchor, constant: -10.0).isActive = true
}
```
の代わりに、
```swift
let bottom = textBaseView.bottomAnchor.constraint(equalTo: cell.bottomAnchor, constant: -10.0)
bottom.priority = UILayoutPriority(rawValue: labelName.contentCompressionResistancePriority(for: .vertical).rawValue - 1)
bottom.isActive = true
```
これでどうでしょうか?
Labelの縦に伸びる力(?)よりもTextViewのbottom制約の優先を下げています。
Labelの縦に伸びる力(?)よりもTextViewのbottom制約の優先を下げています。
# ちなみに
`tableView(_:willDisplay:forRowAt:)`の処理は不要です。
また、`tableView(_:heightForRowAt:)`も不要です。
こっちは、書くとすれば、
```swift
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
   return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
   return 150
}
```
となります。
# さらに
制約を付けるのは一度だけでいいので、sampleTableViewCellの`awakeFromNib()にでも書くのがいいと思います。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る