すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:カスケードピッカー

最終更新日:Jan 17, 2025

AUCascadePicker は、最大 3 レベルをサポートする多階層カスケードピッカーコントロールです。

サンプル画像

yan'an street

API の説明

// ピッカーに選択された項目を設定します。
@interface AUCascadePickerSelectedRowItem : NSObject

@property (nonatomic, strong) NSString *selectedLeftTitle;    // 左側のサブリストで選択されたタイトル。
@property (nonatomic, strong) NSString *selectedMiddleTitle;  // 中央のサブリストで選択されたタイトル。
@property (nonatomic, strong) NSString *selectedRightTitle;   // 右側のサブリストで選択されたタイトル。

@end

@interface  AUCascadePickerRowItemModel : NSObject

@property (nonatomic, strong) NSString *rowTitle;
@property (nonatomic, strong) NSArray<AUCascadePickerRowItemModel *> *rowSubList;

@end

// 連動効果に必要なデータモデル。
@interface AUCascadePickerModel : NSObject

@property (nonatomic,strong) AUCascadePickerSelectedRowItem            *preSelected;   // クライアントから転送された選択済み項目。
@property (nonatomic, strong) AUCascadePickerSelectedRowItem           *selectedItem;  // 現在のコンポーネントに自動的に記録される選択済みデータリスト。
@property (nonatomic, strong) NSArray<AUCascadePickerRowItemModel *>   *dataList;      // データリスト。
@property (nonatomic, strong) NSString *title;                                         // ピッカーのタイトル。

@end


@interface AUCascadePicker : AUPickerBaseView <UIPickerViewDataSource, UIPickerViewDelegate>

@property (nonatomic, strong) AUCascadePickerModel *dataModel;
@property (nonatomic, assign) NSInteger numberOfComponents;
@property (nonatomic, weak) id <AUCascadePickerDelegate> linkageDelegate;

- (instancetype)initWithPickerModel:(AUCascadePickerModel *)model;

@end

// 上部の キャンセル ボタンと 完了 ボタンのコールバック。
@protocol AUCascadePickerDelegate <AUPickerBaseViewDelegate>
/*
 * キャンセルがクリックされたときにコールバックが実行されます。
 */
- (void)cancelPickerView:(AUCustomDatePicker *)pickerView;

/*
 * 完了がクリックされたときにコールバックが実行されます。選択された項目は selectedRowInComponent を介して返すことができます。
 */
- (void)selectedPickerView:(AUCustomDatePicker *)pickerView

@end

JSAPI の説明

API

antUIGetCascadePicker

使用方法

AlipayJSBridge.call('antUIGetCascadePicker',
{
    title: 'nihao',// カスケードオプションのタイトル。
    selectedList:[{"name":"Hangzhou",subList:[{"name":"Shangcheng district"}]}],
    list: [
        {
            name: "Hangzhou",// エントリ名。
            subList: [
                {
                    name: "Xihu district",
                    subList: [
                        {
                            name: "Gucui Street"
                        },
                        {
                            name: "Wenxin Street"
                        }
                    ]
                },
                {
                    name: "Shangcheng district",
                    subList: [
                        {
                            name: "Yan'an Street"
                        },
                        {
                            name: "Longxiangqiao Street"
                        }
                    ]
                }
            ]// カスケードサブデータリスト。
        }
    ]// カスケードデータリスト。
},
function(result){
    console.log(result);
});

入力パラメーター

名前

タイプ

説明

必須

バージョン

title

String

カスケードコントロールのタイトル。

いいえ

10.1.2

selectedList

Json

選択されたサブ項目。入力パラメーターと同じ形式です。([{"name":"Hangzhou",subList:[{"name":"Shangcheng District"}]}])

いいえ

10.1.2

list

Json

セレクターデータリスト。

はい

10.1.2

name

String

list 内のエントリ名。

はい

10.1.2

subList

Json

list 内のサブリスト。

いいえ

10.1.2

fn

function

選択完了後のコールバック関数。

いいえ

10.1.2

出力パラメーター

名前

タイプ

説明

バージョン

success

Bool

選択が完了したかどうか。選択がキャンセルされた場合は、false が返されます。

10.1.2

result

Json

選択された項目。例:[{"name":"Hangzhou",subList:[{"name":"Shangcheng District"}]}]

10.1.2

サンプルコード

model = [[AULinkagePickerModel alloc] init];

    NSMutableArray *modelList = [[NSMutableArray alloc] init];
    for (int i=0; i<6; i++)
    {
        AULinkagePickerRowItemModel *item = [[AULinkagePickerRowItemModel alloc] init];
        item.rowTitle = [NSString stringWithFormat:@"レベル 1 %d", i];
        NSMutableArray *array = [[NSMutableArray alloc] init];
        for (int j=0; j<7; j++)
        {
            if (i == 0)
            {
                break;
            }
            AULinkagePickerRowItemModel *item1 = [[AULinkagePickerRowItemModel alloc] init];
            item1.rowTitle = [NSString stringWithFormat:@"レベル 2 %d", j];
            NSMutableArray *array1 = [[NSMutableArray alloc] init];
            for (int k=0; k<5; k++) {
                AULinkagePickerRowItemModel *item2 = [[AULinkagePickerRowItemModel alloc] init];
                item2.rowTitle = [NSString stringWithFormat:@"レベル 3 %d", k];
                [array1 addObject:item2];
                if (j == 1 || j== 2) {
                    break;
                }
            }
            item1.rowSubList = array1;
            [array addObject:item1];
            if (i == 3 || i== 5) {
                break;
            }
        }
        item.rowSubList = array;
        [modelList addObject:item];
    }

    model.dataList = modelList;


    AULinkagePickerSelectedRowItem *item = [[AULinkagePickerSelectedRowItem alloc] init];
    item.selectedLeftTitle = @"レベル 1 0";
    item.selectedMiddleTitle = @"レベル 2 0";
    item.selectedRightTitle = @"レベル 3 0";

    model.selectedItem = item;

self.linkagePickerView = [[AULinkagePickerView alloc] initWithPickerModel:model];
self.linkagePickerView.linkageDelegate = self;
[self.linkagePickerView show];