アニメーションで表示されるUITableView(コーナーから拡大)

animation objective-c
アニメーションで表示されるUITableView(コーナーから拡大)

UITableを隅から展開することはできません。

これが私がすることです:

 tableAccounts = [[UITableView alloc] initWithFrame:CGRectMake(0, 71, 0,0)];
        [self.view addSubview:tableAccounts];


        [UIView beginAnimations:@"tableAppearing" context:nil];
        [UIView setAnimationDuration:3.0f];
        [UIView setAnimationCurve:UIViewAnimationCurveLinear];

        tableAccounts.frame = CGRectMake(0, 71, 320, 332);
        tableAccounts.backgroundColor = [UIColor redColor];

        [UIView commitAnimations];

テーブルが左上隅から表示されていますが、拡大していません。 つまり、テーブルのサイズは変更されず、常に同じサイズで表示されます。 同じ効果が欲しいのですが、小さなテーブルから始めて、大きくなります。

可能です?

  2  1


ベストアンサー

テーブルビューにスケール変換を適用し、コーナーから移動することで、これを実行できるはずです。 以下は、右下隅から成長するはずです。

CGRect frame = self.view.frame;
int width = CGRectGetWidth(frame);
int height = CGRectGetHeight(frame);

// Make the frame the size you want in the end and place it centered on the corner.
CGRect startTvFrame = CGRectMake(width / 2, height / 2, width, height);
UITableView *tableView = [[UITableView alloc]initWithFrame:startTvFrame];

// Scale the view so that it starts out small
CGAffineTransform t = CGAffineTransformMakeScale(.001, .001);
tableView.transform = t;

[self.view addSubview:tableView];

// Animations
[UIView animateWithDuration:3.0f
                      delay:0.0f
                    options:UIViewAnimationCurveLinear
                 animations:^{
                     // Reset the scale
                     tableView.transform = CGAffineTransformMakeScale(1, 1);

                     // Position the tableview
                     CGRect tvFrame = tableView.frame;
                     tvFrame.origin.x = 0;
                     tvFrame.origin.y = 0;
                     tableView.frame = tvFrame;
                 }
                 completion:nil];

[tableView release];

2


タイトルとURLをコピーしました