セルの下部に向かって多少整列したアクセサリを使用して、カスタム セルを作成しました。セルのaccessoryViewとしてUIImageViewを使用しました。
私の問題は次のとおりです。セルを選択するとすぐに、デフォルトのaccessoryViewが表示され、中央に配置されます(デフォルトの構成)。
カスタム UITableViewCell の-drawRect:
メソッドで、accessoryView を調整します。コードは次のようになります。
- (void)drawRect:(CGRect)rect
{
/* ... some other code ... */
CGFloat yRow2 = 78.0f;
CGFloat accessoryWidth = _accessoryImage.size.width;
CGFloat accessoryHeight = _accessoryImage.size.height;
_accessoryImageView.frame = CGRectMake(320.0f - accessoryWidth - 8.0f, yRow2 - 8.0f - accessoryHeight / 2, accessoryWidth, accessoryHeight);
/* ... some other code ... */
}
-setSelected:animated:
メソッドが呼び出されると、同様に呼び出されると思い-drawRect:
ます(呼び出してこれを強制しようとしました-setNeedsDisplay:
)。が選択時に呼び出されているのを見たこと-drawRect:
がありますが、アクセサリが必要に応じて配置されていません。