0
在我的應用程序中,我在UIScrollView中有一些信息。 UIScrollView中的內容可以通過過濾器進行更改。在UIScrollView中setContentSize只能工作一個
第一次,當ViewController加載時,我把所有的項目放在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];
}
}
滾動型佔滿了由新的項目,但該contentSize是一樣的,就像以前的情況,裏面的所有物品都在哪裏。其實,第二次沒有改變。
這對用戶來說不舒服,有人可以給我建議,我應該在哪裏看?
請注意,此View Controller的Autolayout已關閉。
謝謝。
我的代碼是正確的。 contentSize不應小於scrollView框架。 – Andrey
等等,你是否試圖調整scrollview的實際框架,或者你是否嘗試調整contentSize,以便可以滾動瀏覽汽車? – JustAnotherCoder
我只更改contentSize – Andrey