iOS技术

菜单选择弹框-AlertTableView iOS

2018-04-06  本文已影响312人  ztlight000

一、概述

如下图所示,我们平常经常会用到弹框选择的菜单列表框,比如商城的选择框,评论举报的选择框等等,这里封装了一个简单的弹框,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;

}

上一篇下一篇

猜你喜欢

热点阅读