美文网首页iOS技术
菜单选择弹框-AlertTableView iOS

菜单选择弹框-AlertTableView iOS

作者: ztlight000 | 来源:发表于2018-04-06 11:49 被阅读312次

    一、概述

    如下图所示,我们平常经常会用到弹框选择的菜单列表框,比如商城的选择框,评论举报的选择框等等,这里封装了一个简单的弹框,gitHub地址为:菜单选择弹框

    无图标样式:

    有图标样式:

    二、代码说明

    先看下协议,通过以下三个协议方法给AlertTableView赋值。

    @protocolAlertTableViewDelegate

    //提供数据源

    - (NSMutableArray*)alertTableVieDataSource;

    //更改对应的cell样式

    - (void)alertTableView:(AlertTableViewCell*)alertTableViewCell cellForRowAtIndexPath:(NSIndexPath*)indexPath;

    //每一个cell的高度

    - (CGFloat)alertTableView:(AlertTableView*)alertTableView heightForRowAtIndexPath:(NSIndexPath*)indexPath;

    @end

    以下是必要的属性设置

    @property (nonatomic, assign) CGRect globalFrame; //AlertTableView的frame

    @property (nonatomic,assign)  CGRect tableViewFrame; //tableView的frame

    @property (nonatomic, copy) TapCompletionBlock tapBlock; //点击当前AlertTableView的回调

    @property (nonatomic, weak) id delegate;

    @property (nonatomic, assign) ArrowAlignmentType arrowAlignment; //箭头位置

    @property (nonatomic, copy) SelectAlertTableViewBlock selectBlock; //选中cell的回调

    三、使用说明

    设置AlertTableView:

    - (void)setUpAlertTableView {

        //设置弹出选项view

        AlertTableView*alertTableView = [[AlertTableViewalloc]initWithFrame:CGRectMake(375-120,64,115,128)];

        alertTableView.backgroundColor= [UIColorlightGrayColor];

        alertTableView.arrowAlignment=ArrowRightType;//设置箭头位置

        alertTableView.selectBlock= ^(NSIndexPath*indexPath) {

            if(indexPath.row==0) {

                NSLog(@"点击了我的订单");

            }elseif(indexPath.row==1) {

                NSLog(@"点击了购物车");

            }elseif(indexPath.row==2) {

                NSLog(@"点击了邮寄地址");

            }

        };

        alertTableView.delegate=self;

        _alertTableView= alertTableView;

    }

    实现代理方法:

    #pragma mark - AlertTableViewDelegate 弹框

    //提供数据源

    - (NSMutableArray*)alertTableVieDataSource {

        return self.alertTableDataArr;

    }

    //更改对应的cell样式

    - (void)alertTableView:(AlertTableViewCell*)alertTableViewCell cellForRowAtIndexPath:(NSIndexPath*)indexPath {

        alertTableViewCell.tableTextLable.text=_alertTableDataArr[indexPath.row]

        alertTableViewCell.backgroundColor= [UIColororangeColor];

        alertTableViewCell.tableTextLable.font= [UIFontsystemFontOfSize:12];

        alertTableViewCell.tableTextLable.textColor= [UIColorwhiteColor];

    //    [alertTableViewCell setTableImageViewHidden:YES];

        alertTableViewCell.tableImageView.image = [UIImage imageNamed:@"starlevelfull"]; //设置cell图标,并关掉上一行setTableImageViewHidden

    }

    //每一个cell 的高度

    - (CGFloat)alertTableView:(AlertTableView*)alertTableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {

        return 44;

    }

    相关文章

      网友评论

        本文标题:菜单选择弹框-AlertTableView iOS

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