2010-11-18 5 views
1

私は、「サムネイル」またはミニチュアビューからフルビューにズームするために、テーブルビューのユーザータップに取り組んでいます。やや厄介なアニメーションの不具合を除いて、すべてがうまくいっています。CGAffineTransformConcatに代わって

if ([subview respondsToSelector:@selector (name)] && [subview.name isEqualToString:self.labelListName.text]) 
    { 
     [self.tabBarController.view addSubview:subview]; 
     CGRect frame = CGRectMake(35, 78, self.scrollView.frame.size.width, self.scrollView.frame.size.height);   
     subview.frame = frame; 

     CGAffineTransform scale = CGAffineTransformMakeScale(1.39, 1.39); 
     CGAffineTransform move = CGAffineTransformMakeTranslation(0,44); 
     CGAffineTransform transform = CGAffineTransformConcat(scale, move); 
     [UIView animateWithDuration:0.15 
           delay:0 
          options:UIViewAnimationOptionBeginFromCurrentState 
         animations:^{ 
          subview.transform = transform; 
         } 
         completion:^(BOOL finished){ [self goToList],subview.hidden = YES; }]; 
    } 

- (void)goToList 
{ 
    self.gotoWishList = [[WishList alloc] initWithNibName:@"WishList" bundle:nil]; 
    self.gotoWishList.hidesBottomBarWhenPushed=YES; 
    self.gotoWishList.name = self.labelListName.text; 
    [self.navigationController pushViewController:self.gotoWishList animated:NO]; 
    self.gotoWishList.scrollLists = self; 
    [WishList release]; 
} 

とアニメーションを行う際に、ズームビューとユーザーが対話しようとしている実際のビュー間の転送が完全に完璧ではない:事は、私は以下のコードを使用しています。ビューを切り替えると、セル内のテキストが少しジャンプします。問題は翻訳マトリックスにあります。私はそれをスキップしてアニメーションを完全に動作させることができますが、オプションではないGUIでミニチュアビューを移動する必要があります。代わりにアニメーションを別の順序(移動、スケール)で行うと、より効果的です。私はまだ最後にジャンプを得るが、すべてがジャンプするので、それはより良く見える...そしてテキストだけではない。

ですから、基本的に私の質問は、このアニメーションを流暢にすることです。私はCGAffineTransformConcatがまだそれぞれのアニメーションを別々に実行していることを読んでいます。本当に両方のアニメーション(スケーリングとリストの移動)が必要です。

ありがとうございました!

答えて

0

あなたが望むものを得るためには、ビュー/グラフィックコンテキストをネストする必要があると思います。アニメーションシステムは同時アニメーションをサポートしていません。なぜなら、そのような数学は指数関数的な計算力を必要とするからです。あるビューをスライドさせながら、もう一方のビューを拡大して、それを騙すことができます。

私はそれを試してみたことがないので、それについてはわかりません。

また、テーブルビュー自体からジャークやスキップが発生している可能性があります。スクロールの先頭と最後のバウンスは、オンザフライでテーブルのサイズを極端に変更した場合、エフェクトを生成する可能性があります。私はそれをすべてオフにして、まだ問題があるかどうかを見ます。また、テーブルビューとは独立したビューでテストを行い、テーブルビューが動かずにアニメーションに問題があることを確認することもできます。

+0

私は、UIでテーブルビューを下に移動しようとしました。これを移動しなくてもフルサイズに拡大でき、アニメーションは正常に機能します(スケーリングのみ、翻訳なし)。人工物や何もない。 – Glitch

関連する問題