2011-06-22 5 views
3

私は一連のuiviewsを持っています。アニメーションを作成して、ボタンプレスイベントがuiviewを下から拡大してビューの詳細を表示するようにしたいと思います。もう1つのボタンを押すとビューが元の状態に戻ります。どのようにアニメーションを展開して、適切な位置での視聴を縮小しますか?

どうすればいいですか?

一連のuiviewsがカバーフローのような水平スクロールビューでレイアウトされています。私は各ボタンについての追加情報をボタンのクリックで表示したいと思います。

詳細情報が必要な場合は、コメントを削除してください。

TIA、

PraveenさんS

答えて

9

このコードは、あなたの視野を拡大していきます... .Hではその使用については

CGRect tempFrame=view.frame; 
tempFrame.size.width=200;//change acco. how much you want to expand 
tempFrame.size.height=200; 
[UIView beginAnimations:@"" context:nil]; 
[UIView setAnimationDuration:0.2]; 
view.frame=tempFrame; 
[UIView commitAnimations]; 
+0

グレート私はそれを見ていきます。 –

+0

確かに...問題がある場合は教えてください – iAmitWagh

1

にこのコード

それを縮小するために逆を行いますファイル

#import <UIKit/UIKit.h> 
@interface ExpandedViewController : UIViewController 
{ 
    UIView * expandiView; 
    BOOL viewExpanded; 
} 
- (IBAction)expandOrShrinkView:(id)sender; 
@end 

とあなたの.mファイルに

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    aview = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)]; 
    aview.backgroundColor = [UIColor redColor]; 
    [self.view addSubview:aview]; 

    viewExpanded = NO; 
} 

そして、あなたのボタンアクションで

は、このコードを追加
- (IBAction)expandOrShrinkView:(id)sender { 
    [UIView animateWithDuration:0.8f delay:0.0f options:UIViewAnimationOptionTransitionNone animations: ^{ 
     if (!viewExpanded) { 
      viewExpanded = YES; 
      aview.frame = CGRectMake(10, 10, 100, 200); 
     }else{ 
      viewExpanded = NO; 
      aview.frame = CGRectMake(10, 10, 100, 100); 
     } 
    } completion:nil]; 
} 

ボタン初めてそれが下からビューを展開し、あなたがボタン秒をクリックしたときにクリックし

時間は...

を下の変更あなたの必要性にフレームサイズからの眺めを縮小し、あなたは別のボタンに機能を縮小したい場合は、この

のような2つのアクションメソッドを使用するよりもします
- (IBAction)expandView:(id)sender { 
     [UIView animateWithDuration:0.8f delay:0.0f options:UIViewAnimationOptionTransitionNone animations: ^{ 
       aview.frame = CGRectMake(10, 10, 100, 200); 
     } completion:nil]; 
    } 

- (IBAction)ShrinkView:(id)sender { 
     [UIView animateWithDuration:0.8f delay:0.0f options:UIViewAnimationOptionTransitionNone animations: ^{ 
       aview.frame = CGRectMake(10, 10, 100, 100); 
     } completion:nil]; 
    } 
+0

これを使用して、私はビューを開くために2回ボタンをクリックしなければなりません。何が起こっているのでしょうか? –

+0

@teuben 'ViewDidLoad'メソッドに' viewExpanded = NO; 'という行を追加しましたか? Bcoz私は問題は、あなたがviewExpandedを設定していないと思うのは、なぜ初めてメソッドが呼び出されたときにビューが開かれないのかということです。それを確認して私に知らせてください – Dilip

+0

私はviewExpanded = NOを持っています。 viewDidLoadにある。私はそれがYESに設定される必要があることを発見した。そのアクションを展開するには、ifをtrueに評価する必要があるので、viewExpanded BoolをYESで開始するか、アクションメソッドのコードを逆にする必要があります。 -Thanks –

関連する問題