美文网首页
iOS 自适应标签拖拽排序

iOS 自适应标签拖拽排序

作者: KeyboardLife | 来源:发表于2017-06-04 15:24 被阅读114次

    ZWDragSortView

    自适应标签拖拽排序

    功能

    适用于有标签拖拽自动排序需求的人使用,该封装最大的特点是自适应,只要外部传入需要显示的标签数组,就可以自动计算该自定义view的高度,不会有多余的空白。当显示的标签数量很大,显示高度超过屏幕,可以支持滚动。可以手动添加标签数量,点击标签支持删除,高度自适应不用额外处理。

    文件结构

    该封装只有ZWDragSortView.h和ZWDragSortView.m两个文件。

    ZWDragSortView.h头文件定义如下:

    typedef void(^ZWClickBtnBlock)(NSInteger index,NSString * title);
    
    @interface ZWDragSortView : UIScrollView
    
    @property (nonatomic,strong) NSMutableArray * titlesArr;//按钮显示数组
    @property (nonatomic,assign) CGFloat  columnMargin;//按钮间隔
    @property (nonatomic,assign) NSInteger  columnCount;//按钮列数
    @property (nonatomic,strong) UIColor * titlesColor;//设置按钮文字颜色
    @property (nonatomic,strong) UIColor * btnBackgroundColor;//设置按钮背景颜色
    @property (nonatomic,assign) CGFloat  tagHeight;//设置按钮标签高度
    @property (nonatomic,strong) UIFont * titleFont;//设置按钮文字字体大小
    @property (nonatomic,assign) CGFloat  viewY;//直接设置控件的y值即可食用
    @property (nonatomic,assign) BOOL  isDragEnable;//长按拖拽使能,默认开启
    
    //初始化
    +(instancetype)sortViewWithTitles:(NSMutableArray*)titles;
    
    //点击标签回调
    -(void)clickBtnActionBack:(ZWClickBtnBlock)block;
    
    

    titlesArr属性用于标签变化的时候重新布局使用;支持自定义按钮列数,按钮间隔,不赋值使用默认值;支持按钮文字颜色、字体大小,控件背景色设置,支持长按拖拽功能关闭,外部传入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;
        
    

    外部传入一个字符串数组,用类方法sortViewWithTitles:创建对象,可以设置各种参数,也可以不设置,直接addSubview。clickBtnActionBack方法用于点击标签回调事件结果,没有点击标签需求可以忽略。viewY用于设置控件的位置,默认y值是64,宽度是屏幕宽度,也可以自定义控件宽高。

    演示效果

    demo演示.gif

    github项目地址

    相关文章

      网友评论

          本文标题:iOS 自适应标签拖拽排序

          本文链接:https://www.haomeiwen.com/subject/pmgvfxtx.html