ZWDragSortView
自適應(yīng)標(biāo)簽拖拽排序
功能
適用于有標(biāo)簽拖拽自動(dòng)排序需求的人使用,該封裝最大的特點(diǎn)是自適應(yīng),只要外部傳入需要顯示的標(biāo)簽數(shù)組,就可以自動(dòng)計(jì)算該自定義view的高度,不會(huì)有多余的空白。當(dāng)顯示的標(biāo)簽數(shù)量很大,顯示高度超過(guò)屏幕,可以支持滾動(dòng)。可以手動(dòng)添加標(biāo)簽數(shù)量,點(diǎn)擊標(biāo)簽支持刪除,高度自適應(yīng)不用額外處理。
文件結(jié)構(gòu)
該封裝只有ZWDragSortView.h和ZWDragSortView.m兩個(gè)文件。
ZWDragSortView.h頭文件定義如下:
typedef void(^ZWClickBtnBlock)(NSInteger index,NSString * title);
@interface ZWDragSortView : UIScrollView
@property (nonatomic,strong) NSMutableArray * titlesArr;//按鈕顯示數(shù)組
@property (nonatomic,assign) CGFloat columnMargin;//按鈕間隔
@property (nonatomic,assign) NSInteger columnCount;//按鈕列數(shù)
@property (nonatomic,strong) UIColor * titlesColor;//設(shè)置按鈕文字顏色
@property (nonatomic,strong) UIColor * btnBackgroundColor;//設(shè)置按鈕背景顏色
@property (nonatomic,assign) CGFloat tagHeight;//設(shè)置按鈕標(biāo)簽高度
@property (nonatomic,strong) UIFont * titleFont;//設(shè)置按鈕文字字體大小
@property (nonatomic,assign) CGFloat viewY;//直接設(shè)置控件的y值即可食用
@property (nonatomic,assign) BOOL isDragEnable;//長(zhǎng)按拖拽使能,默認(rèn)開啟
//初始化
+(instancetype)sortViewWithTitles:(NSMutableArray*)titles;
//點(diǎn)擊標(biāo)簽回調(diào)
-(void)clickBtnActionBack:(ZWClickBtnBlock)block;
titlesArr屬性用于標(biāo)簽變化的時(shí)候重新布局使用;支持自定義按鈕列數(shù),按鈕間隔,不賦值使用默認(rèn)值;支持按鈕文字顏色、字體大小,控件背景色設(shè)置,支持長(zhǎng)按拖拽功能關(guān)閉,外部傳入viewY值可以改變控件豎直方向位置,也可以自定義控件frame。
用法
引入ZWDragSortView.h頭文件,
self.datas = [NSMutableArray array];
for (NSInteger i = 0; i < 10; i++) {
[self.datas addObject:[NSString stringWithFormat:@"%02ld",i]];
}
ZWDragSortView * view = [ZWDragSortView sortViewWithTitles:self.datas ];
[view clickBtnActionBack:^(NSInteger index, NSString *title) {
[self.datas removeObjectAtIndex:index];
self.cutomView.titlesArr = self.datas;
}];
//view.viewY = 350;
//view.frame = CGRectMake(30, 30, 230, 200);
view.backgroundColor = [UIColor yellowColor];
[self.view addSubview:view];
self.cutomView = view;
外部傳入一個(gè)字符串?dāng)?shù)組,用類方法sortViewWithTitles:創(chuàng)建對(duì)象,可以設(shè)置各種參數(shù),也可以不設(shè)置,直接addSubview。clickBtnActionBack方法用于點(diǎn)擊標(biāo)簽回調(diào)事件結(jié)果,沒有點(diǎn)擊標(biāo)簽需求可以忽略。viewY用于設(shè)置控件的位置,默認(rèn)y值是64,寬度是屏幕寬度,也可以自定義控件寬高。