私のTableViewCellにラベルがあります。 DispatchQueueを使用してセルをデキューすると、セル内のラベルが縮小されます。それどころか、単にデキューすると、ラベルは通常に変わります。 これにはどのような原因が考えられますか?DispatchQueueでUITableViewCellの文字が縮む
コード:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let post = posts[indexPath.row]
if let cell = tableView.dequeueReusableCell(withIdentifier: "FeedCell") as? FeedCell {
DispatchQueue.main.async {
cell.configureCell(post: post)
}
return cell
} else {
return FeedCell()
}
}
コードFeedCellでラベルレイアウトのため(のUITableViewCell):
override func layoutSubviews() {
super.layoutSubviews()
contentView.layoutIfNeeded()
self.caption.sizeToFit()
}
contentView
は、ラベルが置かれているUIViewです。
を削除する方が簡単であることを保証するだろうか?そのコードは既にメインキューで実行されています。あなたの質問への答えは、すでにテーブルビューにセルを返した後に設定が行われるため、空のキャプションに合わせてサイズがすでに設定されているからです。 – Paulw11
はい。 UI更新をメインキューで実行する必要がありますが、UI要素によって呼び出されるこのようなメソッドはすでにメインキューにあります – Paulw11