0

ユーザーをリストするためのテーブルビューがあります。ボタンをクリックすると、別のテーブルビューをポップアップとして表示したい...アクションシートと同じように.... ..!

ON ピッカーを表示ボタンをクリックすると、テーブルビューがポップアップとして表示されます

4

9 に答える 9

2

2つのUITableViewtable1とtable2-があるとします。

セットする

table1.tag = 1;
table2.tag = 2;

デリゲートとデータソースのプロパティをselfに設定します。

どのデリゲートメソッドでも、タグプロパティによってテーブルを検出できます。以下を参照してください。

- (NSInteger)tableView: (UITableView*)tableView numberOfRowsInSection: (NSInteger)section {
    if([tableView tag] == 1)
       {
            //do stuff for table1
            return 10;
       }
    else if([tableView tag] == 2)
       {
            //do stuff for table2
            return 20;
       }

}
于 2012-10-11T06:47:32.467 に答える
2

ミニテーブル用に別の UITableViewController を作成し、ユーザーが大きなテーブルからセルを選択したら、関連するデータソースにフィードします。次に、ミニ テーブルのビューをサブビューとしてメイン ビューに追加します。ミニ テーブルとビッグ テーブルの間に透明な UIView を配置して、ユーザーのジェスチャーがビッグ テーブルに渡されないようにします。

[編集] 同じView Controllerをデータソースにして、複数のテーブルビューのデリゲートにすることができます。すべての UITableView のデリゲート メソッドが元のテーブルビューへの参照を提供するため、大きなテーブルと小さなテーブルを区別できることに気付いたかもしれません。つまり、テーブルごとに異なる行数、異なるセルなどを持つことができます。

上記の私の提案とほぼ同じですが、きれいではないことを除いて、各デリゲートメソッドに次のようなコードが必要です。

if(tableView.tag == kBigTableTag) { ... } 
else if (tableView.tag == kMiniTableTag) { ... }

上で説明したように、ミニ テーブルをビュー コントローラーのビューのサブビューとして追加する必要があります。正当な理由がない限り、ミニテーブルには別の UITableViewController を使用することをお勧めします。

すべてが理にかなっていることを願っています:)

于 2012-10-11T06:11:06.547 に答える
1

UITableViewどのメインテーブルビューをメインビューに追加し、これをメインビューに追加した後、新しいビューUIViewに追加した後、メインビューのサブビューとして設定しUITableViewます..

新しいビューの背景色に黒を指定し、アルファを 0.85 またはポップアップ ビューに表示される別の色に設定します。

デリゲートとデータソースを両方に与え、UITableViewこの両方のテーブルビューを管理するには、次の条件を使用するだけです..

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    if (tableView == yourFirstTable) {
        return [Array1 count];
    }
    else {
        return [Array2 count];
    }
}

これがお役に立てば幸いです...

:)

于 2012-10-11T07:06:18.097 に答える
0

IBで2つのテーブルビューを追加します。1つは大きなフルスクリーンビューで、もう1つは大きなフルスクリーンビューよりも大きいZ値を持つ小さなビューです。各テーブルビューにタグを設定します。小さなテーブルビューの非表示値をYESに設定します

すべてのUITableViewデリゲートメソッドで、テーブルビュータグの値を確認し、それに応じて続行します。

if (tableView.tag == 1) {
    // load data for the large table view
}
if (tableView.tag == 2) {
    // load data for the small table view
}    

ボタンをタップして、小さなテーブルビューの非表示値をNOに設定します。これにより、小さなテーブルビューが表示されます。

于 2012-10-11T06:46:36.327 に答える
0

次の理由から、UITableView をサブビューとしてカスタム ビュー クラスを作成します。

1.再利用可能

2. ビューの外観を変更したり、オプションを追加したりする場合のように、保守が簡単です。カスタム ビューを変更するだけで、そのすべてのインスタンスが更新されます。

3. 委任

そうは言っても、次のプロセスは、これらのカスタム ビューを通常どのように作成するかです。

1) 新しいカスタム ビュー クラスを作成する

2) カスタム ビューで、.h ファイルの先頭にプロトコルを作成し、プロトコル宣言で、このデリゲート プロトコルに準拠するビュー コントローラーが実装する必要があるメソッドを指定します。私にとって、これは通常、オプション選択メソッドとカスタムビュークローズメソッドを作成することを意味します

@protocol CustomViewDelegate ....
    // all conforming View Controller must implement these methods.
    // in your case, you probably only need the optionChosen method
    -(void)optionChosen;
    -(void)customViewClose;
@endprotocol

3) カスタム ビュー .h ファイルの @interface セクションで、プロトコルのタイプを受け取る「id」変数を宣言します。

id<CustomViewDelegate> delegate;

4) id デリゲート変数のプロパティを作成します

5) .h ファイル内に UITableView を作成します

6) 渡されたエンティティをパラメーターとして受け取る set-entity メソッドを作成します。これにより、元のビュー コントローラーに送り返すことなく、このエンティティに対してアクションを実行できます。

7) このカスタム クラスの .m ファイル内にテーブル ビューを実装します。

8) オプションが選択されたら、デリゲート メソッド「optionChosen」を呼び出すことができます。

// psuedo-code
-(void)tableView:(UITableView *)tableView didSelectRowAtIndePath:(NSIndexPath *)indexPath
{
    [delegate optionChosen];
}

9) 最後に、View Controller で showCustomView() と hideCustomView() を作成します。

// psuedo code
-(void)onLongPressOnTableRow
{
    // pass the custom entity to the custom view for updating
    [customeView setEntity:[arrEntities objectAtIndex:row]];

    [self showCustomView];
}

-(void)showCustomView
{
    [UIView animateWithDuration:0.5 actions:^{
        customView.alpha = 1;
    }];
}

-(void)hideCustomView
{
    [UIView animateWithDuration:0.5 actions:^{
        customView.alpha = 0;
    }];
}
于 2012-10-11T09:03:33.650 に答える
0

スーパー ビューに 2 つ目のテーブル ビューを追加します。

于 2012-10-11T06:07:59.413 に答える
0

これはあなたがしなければならないことです。ボタンクリックでaddSubViewUITableViewその特定のフレームに。に追加して、UITableView表示されるようにしてください。必要に応じて、アニメーション化してpopoupのように見せることができます。これで一般的なアイデアが得られることを願っています:) ...他に何かあればお尋ねください...

于 2012-10-11T06:10:54.957 に答える
0

メイン ビューのサブビューとしてテーブル ビューを追加できます。タイプのクラスを作成し、UIViewController最初UITableViewにそこにサブビューとして追加します。次に、ボタンをタップするUITableViewと、同じのサブビューとして2 番目を追加できますUIViewController。おそらく、このテーブル ビューを下からスライドするアニメーションで表示し、このテーブル ビューの背後にオーバーレイ ビューを追加できます。

于 2012-10-11T06:12:48.897 に答える
0

これを解決するには 1 ~ 2 の方法がありますが、UX の観点からは、ドロップダウン テーブル用に別のテーブルを作成し、データソースに適切なデータを設定することをお勧めします。ユーザーがメイン テーブルからセルを選択したとき。次に、小さなテーブルビューをサブビューとしてメイン ビューに追加します。UX を向上させるために、これらのテーブル間に半透明のビューを追加するか、大きなテーブルの userInteractionEnable を NO に設定し、小さなテーブルを表示することができます。

于 2012-10-11T06:37:16.430 に答える