【问题标题】:in UIScrollView setContentSize working only one在 UIScrollView setContentSize 只工作一个
【发布时间】:2013-06-27 08:55:33
【问题描述】:

在我的应用程序中,我在 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 是一样的,就像之前的情况一样,里面的所有项目都在哪里。其实第二次没改过。

这对用户来说不舒服,有人可以建议我,我应该看哪里?

请注意,此视图控制器的自动布局已关闭。

谢谢。

【问题讨论】:

    标签: ios uiscrollview


    【解决方案1】:

    你做得对,我认为你只是打错了一些代码。这是你写的:

    int itemHeight = 100;
    CGFloat scrollViewHeight = cars.count * itemHeight;
    if (scrollViewHeight < scrollView.frame.size.height) {
         scrollViewHeight = scrollView.frame.size.height;
    }
    

    使用该代码,scrollViewHeight 将永远不会缩小到更小的尺寸。您正在设置当前 scrollView.frame.size.height 的最小尺寸。那是你想要的功能吗?如果没有,你应该删除 if 语句,留下:

    CGFloat scrollViewHeight = cars.count * itemHeight;
    [scrollView setContentSize:CGSizeMake(scrollView.frame.size.width, scrollViewHeight)];
    

    【讨论】:

    • 我的代码是正确的。 contentSize 不应小于 scrollView 框架。
    • 等等,您是在尝试调整滚动视图的实际框架大小,还是尝试调整 contentSize 以便滚动浏览您的汽车?
    • 我只改变 contentSize
    • 那么内容大小必须比滚动视图BIGGER,以便您可以滚动浏览所有项目。试试我的代码并取出“if 语句”,我确信它会起作用。
    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多