私は通常viewDidAppear
メソッドを使用して、ビューが表示された後にUIに関するいくつかのことを行い、このメソッドをさまざまな状況で使用しましたが、非常に便利でしたが、UITableViewCell
が表示された後、viewDidAppear
のようにUITableViewCell
に対して同様の処理を行うSDKで使用可能なメソッドはありますか?
pS私の場合、willDisplayCell
は機能しませんでした。実際に存在する場合は、didDisplayCell
のようなものが必要です。
UITableViewDelegate
には次の機能があります。
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)
セル自体には、このためのコールバックはありません。
セルのフレームの変更に応答してレイアウトを調整する必要がある場合は、セルクラスに-layoutSubviews
を実装する必要があります。 [super layoutSubviews]
を呼び出すことを忘れないでください。
メソッドviewDidLoad
はUIViewControllerとそのサブクラスに関連しているため、UIViewサブクラスであるUITableViewCellではこれを使用できません。私のアプリの1つで使用した解決策は、UITableViewCellのlayoutSubViews
メソッドをオーバーライドすることで、以下のようにアクションをしばらく遅延させました。
- (void)layoutSubViews
{
[super layoutSubviews];
[self performSelector:@selector(myMethod) withObject:nil afterDelay:1.0];
}