1

我动态地将自定义视图添加到我的 UIViewController。它现在完美地添加了,没有例外。但是屏幕卡住了。我的滚动视图不起作用。我早些时候遇到了这个问题,人们建议使用 setContentSize。我这样做了,效果很好。现在我有一个新场景。我有 2 个屏幕。在屏幕 A 中我保存值。然后我单击屏幕 A 上的条形按钮项并转到屏幕 B。在屏幕 B 中(它是一个 tableviewcontroller)我选择一行然后去返回屏幕 A 并相应地填充值(基本上加载我在应用程序开头保存的已保存值)。我正确填充它们并添加了滚动视图,但它被卡住了。它既不会向上/向下移动。我编写了这段代码来添加子视图并设置滚动视图大小和帧大小。

ITMCustomView *cView = [[ITMCustomView alloc] initWithFrame:CGRectMake(187, 660, 400, 400)
                                                         andOrderedItem:@"New"
                                                                 andTag:self.tagNumber
                                                          withFoldArray:self.foldTypeArray
                                                          withRollArray:self.rollTypeArray];

                cView.tag =self.tagNumber;
            NSLog(@"Assigned tag is %d",cView.tag);

            cView.delegate = self;

            CGPoint scrollPoint = CGPointMake(0.0, (cView.frame.origin.y/500)*400);
            [self.scrollView setContentOffset:scrollPoint animated:YES];

            [self.scrollView addSubview:cView];

            CGFloat scrollViewHeight = 0.0f;
            for (UIView *view in self.scrollView.subviews)
            {
                scrollViewHeight += view.frame.size.height;
            }

            CGSize newSize = CGSizeMake(320,scrollViewHeight);

            [self.scrollView setContentSize:newSize];
            NSLog(@"947 the tag number is %d",self.tagNumber);

我检查了 scrollViewHeight 的值..它的 3254.000..我把它改成了 4000,因为有人建议增加高度。那我做错了什么。这个问题遵循我的另一个问题 使用 NSNotifications 从 TableViewController 导航回 UIViewController 如果您需要更多信息,请询问。谢谢。

4

2 回答 2

1

在我使用确实出现而不是出现之后让我的工作。

- (void) viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    self.scrollView.contentSize = self.viewMain.bounds.size;
}
于 2014-02-05T05:29:21.663 回答
0

检查scrollingEnabled滚动视图上的属性。不出所料,它需要设置为YES. 如果是这种情况并且它仍然不起作用,请检查视图(及其超级视图)是否也userInteractionEnabled设置YES为。在调试器中,您可以po [self.view recursiveDescription]恢复视图层次结构,这也可能为您提供一些有用的信息。

于 2012-12-26T21:24:01.280 回答