【发布时间】:2013-05-13 20:02:07
【问题描述】:
我有一个应用程序,用户可以在其中随意添加我所谓的调色板。项目 (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%。那么为什么不调整视图的大小呢?我需要自己做吗?
【问题讨论】: