iOS 下拉列表選擇

2021-09-27 02:15:13 字數 4355 閱讀 8530

ios下拉列表選擇

下拉展開列表選擇#import

typedef ns_enum(nsuinteger, itemtype);

ns_assume_nonnull_begin

@inte***ce item : uibutton

@property (nonatomic,assign)nsinteger index;//選中的角標

-(uibutton *)inititemwithtitle:(nsstring *)title itemtag:(nsinteger)itemtag frame:(cgrect)frame action:(sel)action view:(uiview *)superview;

-(void)settitle:(nsstring *)title andselectindex:(nsinteger)index;

@end

ns_assume_nonnull_end

#import 「item.h」

@implementation item

-(uibutton *)inititemwithtitle:(nsstring *)title itemtag:(nsinteger)itemtag frame:(cgrect)frame action:(sel)action view:(uiview *)superview

@end

#import

#import 「item.h」

// 螢幕寬

#define screen_width ([uiscreen mainscreen].bounds.size.width)

// 螢幕高度

#define screen_height ([uiscreen mainscreen].bounds.size.height)

@protocol screeningdelegate

///展開某標題下的檢視 並傳入當前選中的下標

-(void)showscreenin**iewwithitemtag:(nsinteger)itemtag selectindex:(nsinteger)selectindex;

///收起試圖

-(void)closescreenin**iew;

@end

ns_assume_nonnull_begin

@inte***ce screenin**iew : uiview

@property (nonatomic,strong)nsmutablearray *itemsarray;

//資料來源

//根據資料來源 來顯示標題可自行處理 這裡使用的格式是@[@[nsstring,nsstring,nil],@[nsstring,nsstring,nil]@[nsstring,nsstring,nil]]

@property (nonatomic,strong)nsmutablearray *dataarray;

@property (nonatomic,weak) id delegate;

@end

ns_assume_nonnull_end

#import 「screenin**iew.h」

@inte***ce screenin**iew()

@end

@implementation screenin**iew

-(nsmutablearray *)itemsarray

return _itemsarray;

}-(void)setdataarray:(nsmutablearray *)dataarray

@end

#import

ns_assume_nonnull_begin

typedef void(^didcellblock)(nsinteger type,nsinteger index);

@inte***ce screeninglistcontroller : uiviewcontroller

@property (nonatomic,assign)nsinteger tag;//第幾個item

@property (nonatomic,assign)nsinteger selectindex;//此item對應的下拉列表中哪條被選中

@property (nonatomic,strong)nsmutablearray *dataarray;

-(void)showlisttag:(nsinteger)tag selectindex:(nsinteger )selectindex dataarray:(nsmutablearray *)dataarray;

@property (nonatomic,copy)didcellblock block;//選中了某一條下拉資料

@end

ns_assume_nonnull_end

#import 「screeninglistcontroller.h」

@inte***ce screeninglistcontroller ()

@property (nonatomic,strong)uitableview *tableview;

@end

@implementation screeninglistcontroller }

#pragma mark *************uitableviewdelegate uitableviewdatasource

-(cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath

-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section

-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

cell.textlabel.text = self.dataarray[indexpath.row];

if (indexpath.row == self.selectindex) else

return cell;}

-(void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath}

#pragma mark ---- 懶載入控制器控制項

-(uitableview *)tableviewelse

}return _tableview;@end

使用#import 「viewcontroller.h」

#import 「screenin**iew.h」

#import 「screeninglistcontroller.h」

@inte***ce viewcontroller ()

@property (nonatomic,strong)screenin**iew *screenin**iew;//篩選檢視

@property (nonatomic,strong)screeninglistcontroller *screenin**c;//下拉顯示的控制器

///test data 三組資料來源

@property (nonatomic,strong)nsarray *dataarray1;

@property (nonatomic,strong)nsarray *dataarray2;

@property (nonatomic,strong)nsarray *dataarray3;

@end

@implementation viewcontroller

}-(void)showscreenin**iewwithitemtag:(nsinteger)itemtag selectindex:(nsinteger)selectindex;}

-(void)setscreenin**iewitemwithtag:(nsinteger)tag index:(nsinteger)index{

[self closescreenin**iew];

item *item = [self.screenin**iew.itemsarray objectatindex:tag];

nsarray *array = @[self.dataarray1,self.dataarray2,self.dataarray3];

[item settitle:[[array objectatindex:tag] objectatindex:index] andselectindex:index];

下拉列表左右選擇 DOM

選項1 選項2選項3 選項4選項5 選項6選項7 選中新增到右邊 全部新增到右邊 選項8 選中刪除到左邊 全部刪除到左邊 思路 把select1的option 被選中 加入到select中。select標籤上有預設值 selected true,說明被中 獲取select1下面所有的option物件...

iOS下拉列表效果實現

控制項的屬性以及介面 主按鈕 可以自定義樣式 可在.m檔案中修改預設的一些屬性 property nonatomic,strong uibutton mainbtn property nonatomic,assign id delegate 下拉列表中的選項標題以及選項高度的設定 一些其他具體樣式的...

日期選擇下拉列表小控制項

using system using system.componentmodel using system.text using system.web using system.web.ui using system.web.ui.webcontrols assembly tagprefix efp...