封装类之------底部弹框分享

git中有Demo
GitHub地址:https://github.com/wmwgh/shareView.git

公司需求弹框分享,要求第一行为固定4个按钮,后面的按钮个数为可变的,并且当按钮的个数超过两行时,只显示两行,需要滑动查看更多的按钮,所以我用collection实现的

自己写了一个封装了类,可以实现固定按钮和可变按钮的组合,也可以单独用collection实现动态按钮布局(修改引用类即可)

操作比较简单,只需要传数据源和实现点击方法

在控制器.m中引入

1 #import "WMWShareBaseView.h"
2 #import "OneModel.h"

传入数据源

 1 - (void)loadClicked
 2 {
 3     // 传输数据
 4     // 第一行为四个固定按钮 修改属性值在WMWShareBtnView.m中,点击方法在最底部
 5     // 下面的按钮为可变按钮,会根据数据源的变化而变化,View高度会自动适应,点击方法在底部
 6     
 7     NSArray *dataArray = @[
 8                           @{@"title": @"测试1", @"iamgeUrl": @"share_platform_qqfriends@2x", @"skipUrl": @"http://www.baidu.com"},
 9                           @{@"title": @"测试2", @"iamgeUrl": @"share_platform_wechattimeline@2x", @"skipUrl": @"http://www.baidu.com"},
10                           @{@"title": @"测试3", @"iamgeUrl": @"share_platform_wechat@2x", @"skipUrl": @"http://www.baidu.com"},
11                           @{@"title": @"测试4", @"iamgeUrl": @"share_platform_qqfriends@2x", @"skipUrl": @"http://www.baidu.com"},
12                           @{@"title": @"测试1", @"iamgeUrl": @"share_platform_wechattimeline@2x", @"skipUrl": @"http://www.baidu.com"},
13                           @{@"title": @"测试4", @"iamgeUrl": @"share_platform_qqfriends@2x", @"skipUrl": @"http://www.baidu.com"},
14                           @{@"title": @"测试1", @"iamgeUrl": @"share_platform_wechattimeline@2x", @"skipUrl": @"http://www.baidu.com"},
15                           @{@"title": @"测试2", @"iamgeUrl": @"share_platform_qqfriends@2x", @"skipUrl": @"http://www.baidu.com"},
16                           @{@"title": @"测试3", @"iamgeUrl": @"share_platform_wechat@2x", @"skipUrl": @"http://www.baidu.com"},
17                           @{@"title": @"测试4", @"iamgeUrl": @"share_platform_wechattimeline@2x", @"skipUrl": @"http://www.baidu.com"}];
18     
19     NSMutableArray *tempArray = [NSMutableArray array];
20     for (NSDictionary *dic in dataArray) {
21         OneModel *oneModel = [[OneModel alloc] init];
22         [oneModel setValuesForKeysWithDictionary:dic];
23         [tempArray addObject:oneModel];
24     }
25     
26     _shareView = [[WMWShareBaseView alloc] initWithCollectionDataArray:tempArray];
27     [_shareView showInView:self.view];
28     
29 }

点击方法分别在两个类中

固定按钮点击方法

 1 #pragma mark --- 固定按钮点击方法
 2 - (void) btnViewClicked:(UITapGestureRecognizer *)recognizer {
 3     switch (recognizer.view.tag) {
 4         case 1000 :
 5         {
 6             NSLog(@"微信");
 7         }
 8             break;
 9         case 1001 :
10         {
11             NSLog(@"朋友圈");
12         }
13             break;
14         case 1002 :
15         {
16             NSLog(@"QQ");
17         }
18             break;
19         case 1003 :
20         {
21             NSLog(@"多图");
22         }
23             break;
24         default:
25             break;
26     }
27     
28 }

Collection代理方法

1 #pragma mark UICollectionViewDelegate的代理方法
2 -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
3     NSLog(@"%ld", indexPath.row);
4 }
原文地址:https://www.cnblogs.com/crazygeek/p/6527164.html