在我的应用程序中,我在 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 是相同的,就像之前的情况一样,里面的所有项目都在哪里。实际上,它没有第二次改变。
这对用户来说是不舒服的行为,有人可以建议我,我应该在哪里看?
请注意,此视图控制器的自动布局已关闭。
谢谢。