私のアプリケーションでは、UIScrollView にいくつかの情報があります。UIScrollView 内のコンテンツはフィルターで変更できます。
初めて、ViewController が読み込まれると、すべての項目が ScrollView に配置され、すべてが完璧に機能します。ユーザーが ScrollView にフィルターを適用したい場合は、古いアイテムをすべて削除し、新しく作成して、新しい setContentSize を設定します。
- (void) displayCars:(NSMutableArray*)cars {
NSArray *viewsToRemove = [scrollView subviews];
for (UIView *v in viewsToRemove) [v removeFromSuperview];
int itemHeight = 100;
CGFloat scrollViewHeight = cars.count * itemHeight;
if (scrollViewHeight < scrollView.frame.size.height) scrollViewHeight = scrollView.frame.size.height;
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width, scrollViewHeight)];
for (int i=0; i < cars.count; i++) {
VitoCarsAdv * adv = [cars objectAtIndex:i];
VIOneCar *carView = [[VIOneCar alloc] init];
[carView setFrame:CGRectMake (0, (i * itemHeight), scrollView.frame.size.width, itemHeight)];
[carView setData:adv];
[scrollView addSubview:carView];
}
}
ScrollView は新しいアイテムでいっぱいになっていますが、 contentSize は、すべてのアイテムが内部にあった以前の状況と同じです。実際には、2 回目は変更されません。
ユーザーにとって快適な動作ではありません。どこを見ればよいか、誰かアドバイスしてもらえますか?
このView ControllerではAutolayoutがオフになっていることに注意してください。
ありがとう。