ユーザーが自由にパレットと呼ぶものを追加できるアプリがあります。項目 ( UIViews
) は、あるパレットから別のパレットにドラッグできます。sizeToFit
アイテムが追加または削除されたときにパレットのサイズを自動的に変更する方法を使用できると思いましたが、サイズ変更は行われていないようです。
ドキュメントには、サブビューに合わせてメソッドのサイズが最も適切なサイズに変更されると記載されています。UIViews
プログラムで追加することは含まれませんか?
sizeToFit
組み込みのメソッドを動作させることができれば、独自のメソッドを作成する必要はありません。しかし、それは何もしていないようです。私が試したコードは次のとおりです。
CGPoint oldCenter = self.pieceBeingMoved.center;
CGPoint newCenter = [self.pieceBeingMoved.superview convertPoint:oldCenter toView:destinationView];
[destinationView addSubview:self.pieceBeingMoved];
self.pieceBeingMoved.center = newCenter;
if (destinationView.tag == 20000) {
NSLog(@"DestinationView is a palette, so resize it from %@",NSStringFromCGRect(destinationView.frame));
[destinationView sizeToFit];
NSLog(@"DestinationView resized to %@",NSStringFromCGRect(destinationView.frame));
}
サブビューを追加する前後のサイズは同じです。追加されるサブビューは、このテストを実行した時点で唯一のサブビューであり、サブビューのサイズは移動先のパレットのサイズの約 5% です。では、なぜビューのサイズが変更されないのでしょうか? 自分でやる必要がありますか?