2013-01-02 40 views
0

我花了几个小时,试图解决我的问题,但我自己找不到解决方案。 我有一些代码,添加的UIView我的滚动视图:UIScrollView:addSubview不会添加项目

- (void) loadSpareparts:(VitoParts*) parts{ 
    data = [VitoServer fetchPartList:parts]; 

    int itemHeight = 100; 
    [scrollView setContentSize:CGSizeMake(scrollView.frame.size.width, (data.count * itemHeight))]; 

    NSLog(@"Item count: %d", data.count); 

    for (int i=0; i<data.count; i++) { 
     VitoPart *sparepart = [data objectAtIndex:i]; 
     VIOnePart *partView = [[VIOnePart alloc] init]; 

     [partView setFrame:CGRectMake (0, (i * itemHeight), scrollView.frame.size.width, itemHeight)]; 

     [partView setData:sparepart]; 
     [scrollView addSubview:partView]; 
     //  [self.view addSubview:partView]; 
    } 

    NSLog(@"In scrollView: %d", scrollView.subviews.count); 
} 

但它无法正常工作。我的最后一条日志消息告诉我,scrollView中的0项。 如果我将partView添加到self.view,它工作正常。 IBOutlet也连接到XIB编辑器中的ScrollView。

我应该在哪里找到解决方案?

谢谢。

+0

在某些时候将scrollView添加到self.view? – tiguero

+0

scrollView放置在界面编辑器中,并通过outled连接到scrollView变量 – Andrey

回答

2

您是在-(void)viewDidLoad之前还是之后调用此方法?如果之前,视图将不会加载,因此scrollView将为零。

+0

谢谢:)在NY之后很难制作程序:) – Andrey

+0

此答案帮助我。你能不能告诉我为什么我应该加载viewDidLoad? –

+0

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/index.html#//apple_ref/occ/instm/UIViewController/viewDidLoad – Alex