0

viewController.view に約 500 個のビューを追加しました。このアクションは、ターゲット上で約 5 秒かかりました。サブビューを追加するたびに画面を更新して、ユーザーが画面に 1 つずつ表示されるようにします。

私は自分のviewControllerでこれを試しました:

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    for(int i=0; i<500; i++)
    {
        //...Create aView
        [self.view addsubview:aView];
        [self.view setNeedsDisplay];
    }
}

私はそれを実行し、5 秒間何も起こらなかった後、すべてのビューが一度に表示されました。[self.view setNeedsDisplay] がメイン スレッド コンテキストから呼び出されるようにしました。

これらのサブビューを 1 つずつ表示する方法はありますか?

4

1 に答える 1

0

簡単な解決策を見つけました。viewController に新しいプロパティを追加しました - 「subviewsCount」ウィッチは 500 に初期化されました。その後、viewDidLoad から次のメソッドを呼び出しました。

-(void) addSubviewsToMotherView
{
    self.subviewsCount -=1;
    if (self.subviewsCount >= 0)
    {
        [UIView animateWithDuration:0.0
                              delay:0.0
                            options:UIViewAnimationOptionLayoutSubviews
                         animations:^{
                             [self methodToAddSubview];
                         }
                         completion:^(BOOL finished){
                             [self addSubviewsToMotherView];
                         }
         ];

    }
}
于 2014-11-01T13:08:42.410 に答える