7

さて、これが私のアプリでやりたいことです。画面の上半分にマップを使用して UIView を実装し、残りの半分に中央に 2 つのボタンを備えたテーブルビューを実装したいと考えています。ボタンの 1 つを押すと、マップがフルスクリーンになり、もう 1 つを押すと、tableView がすべての画面に収まります。

なにか提案を?

4

2 に答える 2

7

UINavigationController のような 1 つのビュー コントローラーで、ビューの上半分のサイズのフレームで MKMapView を作成し、それをビュー コントローラーのサブビューとして追加します。次に、ボタンを保持する UIToolbar を作成し、フレームの上部を MKMapView の下部に合わせます。最後に、フレームが他のフレームのすぐ下にある UITableView を作成します (必ずデリゲートを接続してください)。

次に、マップを全画面表示にする UIBarButtonItem のターゲットを、次のように 3 つのビューすべてのフレームをアニメーション化するメソッドに割り当てます。

[UIView animateWithDuration:0.24 
                      delay:0.0
                    options:UIViewAnimationCurveEaseOut
                 animations:(void (^)(void)) ^{
                     self.toolbar.frame = CGRectMake(0, MAP_HEIGHT_FULLSCREEN, 320, TOOLBAR_HEIGHT);
                     self.mapView.frame = CGRectMake(0,0,320,MAP_HEIGHT_FULLSCREEN);
                     self.tableView.frame = CGRectMake(0, MAP_HEIGHT_FULLSCREEN+TOOLBAR_HEIGHT, 320, MAP_HEIGHT_FULLSCREEN-MAP_HEIGHT);
                 }
                 completion:^ (BOOL finished){}
 ];
于 2012-04-05T17:29:28.077 に答える
1

計画どおりに両方のビューを作成します。1 つのボタンをクリックすると、1 つのビューのフレームがフルスクリーンに合わせて変更されます。もう 1 つのボタンをクリックすると、他のビューにも同じことが行われます。

于 2012-04-05T17:15:17.033 に答える