1. 程式人生 > >iOS tableview cell 多選 (批量邀請好友)

iOS tableview cell 多選 (批量邀請好友)

//

//  AddTeamMeberViewController.h

//  HengTaiXinGolf

//

//  Created by 歐陽榮 on 16/4/21.

//  Copyright © 2016 HengTaiXinGolf. All rights reserved.

//

#import "ParentsViewController.h"

@interface AddTeamMeberViewController : ParentsViewController

{

NSMutableArray *_dataSouceArray;//所有的漢子陣列

NSMutableDictionary

*nameDic;//key: value:對應姓的NSArray

}

@property (nonatomic,strong) NSString * teamNo;

@property (nonatomic,strong) NSString * teamName;

@property(nonatomic,strong) UITableView *m_tableView;

@property(nonatomic,strong) NSMutableArray *m_allName;

@property (nonatomic,strong) UIButton *btn;

@property

(nonatomic,strong) UIButton *btn1;

@end

//

//  AddTeamMeberViewController.m

//  HengTaiXinGolf

//

//  Created by 歐陽榮 on 16/4/21.

//  Copyright © 2016 HengTaiXinGolf. All rights reserved.

//

#import "AddTeamMeberViewController.h"

#import "MemberBeanModel.h"

#import "AddTMCell.h"

#import "KCPinyinHelper.h"

#define ADDTECELL @"AddTMCell"

@interface AddTeamMeberViewController ()<UITableViewDataSource,UITableViewDelegate>

@end

@implementation AddTeamMeberViewController{

NSMutableArray *_nameDataArr;

NSMutableArray * _selecteArr;

}

@synthesize m_tableView;

@synthesize m_allName;

-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [superinitWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil];

if (self)

    {

_nameDataArr = [NSMutableArrayarray];

_dataSouceArray = [NSMutableArrayarray];

_selecteArr = [NSMutableArrayarray];

UILabel *titleLabel = [[UILabelalloc]initWithFrame:CGRectMake(0, 0 , 100, 44)];

        titleLabel.backgroundColor = [UIColor clearColor];  //設定Label背景透明

        titleLabel.font = [UIFont boldSystemFontOfSize:KTitle];  //設定文字字型與大小

        titleLabel.textColor = [UIColor whiteColor];  //設定文字顏色

        titleLabel.textAlignment = NSTextAlignmentCenter;

        titleLabel.text = @"選擇聯絡人"//設定標題

self.navigationItem.titleView = titleLabel;

    }

returnself;

}

//增加右鍵發表儲存按鈕

-(void)createRightBtn{

_btn = [UIButtonbuttonWithType:UIButtonTypeCustom];

_btn.frame = CGRectMake(0, 0, 40, 20);

    [_btnsetTitle:@"確定"forState:UIControlStateNormal];

    [_btnaddTarget:selfaction:@selector(rightBtnClicked) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *item = [[UIBarButtonItemalloc]initWithCustomView:_btn];

self.navigationItem.rightBarButtonItem = item;

}

-(void)createLeftBtn{

_btn1 = [UIButtonbuttonWithType:UIButtonTypeCustom];

_btn1.frame = CGRectMake(0, 0, 40, 20);

    [_btn1setTitle:@"取消"forState:UIControlStateNormal];

    [_btn1addTarget:selfaction:@selector(leftBtnClicked) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem * item1 = [[UIBarButtonItemalloc]initWithCustomView:_btn1];

self.navigationItem.leftBarButtonItem = item1;

}

- (void)viewDidLoad {

    [superviewDidLoad];

// Do any additional setup after loading the view.

self.view.backgroundColor = [UIColorwhiteColor];

    [selfcreateLeftBtn];

    [selfcreateRightBtn];

    [selfcreateData];

    [selfgeturl:KgetAddTeamMemberList];

}

-(void)rightBtnClicked{

DSLog(@"確定");

    [selfsetTeamMemberAddUrl];

}

-(void)leftBtnClicked{

DSLog(@"取消");

    [self.navigationControllerpopViewControllerAnimated:YES];

}

-(void)setTeamMemberAddUrl

{

AFHTTPRequestOperationManager *man = [AFHTTPRequestOperationManagermanager];

    man.responseSerializer = [AFHTTPResponseSerializerserializer];

    man.requestSerializer = [AFJSONRequestSerializerserializer];//json格式來上傳引數

NSString *stringarr=[NSStringstring];

NSString *string;//[NSMutableString string];

for (int i=0; i<_selecteArr.count; i++) {

        string=[_selecteArrobjectAtIndex:i];

        stringarr=[stringarr stringByAppendingString:[NSStringstringWithFormat:@"%@,",string]];

    }

NSString *string2=[stringarr substringToIndex:stringarr.length-1];

NSString *mynoarray =[NSStringstringWithFormat:@"(%@)",string2];

DSLog(@"%@",mynoarray);

NSString * memNick = [UserModelsharedInstance].memberNick;

NSString *paraString = [MD5encodeString:memNick];

NSString * teaM = [MD5encodeString:self.teamName];

NSString *memStr = [UserModelsharedInstance].memberId;

//拒絕好友請求引數

NSMutableDictionary * _param = [NSMutableDictionarydictionary];

    [_param setValue:memStr forKey:@"memberId"];

    [_param setValue:paraString forKey:@"memberNick"];

    [_param setValue:self.teamNoforKey:@"teamNo"];

    [_param setValue:teaM forKey:@"teamName"];

    [_param setValue:mynoarray forKey:@"memberIdArray"];

    [_param setValue:KAPPIDforKey:@"appId"];

    [_param setValue:KappSecretforKey:@"appSecret"];

    [_param setValue:[CommonToolsgetTimeScamp] forKey:@"timestamp"];

NSArray * paramArr = @[[NSStringstringWithFormat:@"memberId%@",_param[@"memberId"]],[NSStringstringWithFormat:@"memberNick%@",_param[@"memberNick"]],[NSStringstringWithFormat:@"teamNo%@",_param[@"teamNo"]],[NSStringstringWithFormat:@"teamName%@",_param[@"teamName"]],[NSStringstringWithFormat:@"memberIdArray%@",_param[@"memberIdArray"]],[NSStringstringWithFormat:@"appId%@",_param[@"appId"]],[NSStringstringWithFormat:@"appSecret%@",_param[@"appSecret"]],[NSStringstringWithFormat:@"timestamp%@",_param[@"timestamp"]]];

    [_param setValue:[CommonToolstokenmd5StringFromArray:paramArr] forKey:@"digest"];

    [man POST:KsetTeamMemberAddparameters:_param success:^(AFHTTPRequestOperation *operation, id responseObject) {

NSDictionary *dict = [NSJSONSerializationJSONObjectWithData:responseObject options:NSJSONReadingMutableContainerserror:nil];

NSLog(@"  邀請好友dict %@",dict);

if ([dict[@"returnCode"] isEqualToString:@"000000"]) {

            [MBProgressHUDshowSuccess:@"邀請成功"toView:nil];

            [self.navigationControllerpopViewControllerAnimated:YES];

        } else

        {

            [MBProgressHUDshowSuccess:@"邀請失敗"toView:nil];

        }

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"error %@",error);

    }];

}

-(void)geturl:(NSString *)url

{

    NSString *memStr = [UserModel sharedInstance].memberId;

//判斷是否好友請求引數  getAddTeamMemberList

    NSMutableDictionary * _param = [NSMutableDictionary dictionary];

    [_param setValue:memStr forKey:@"memberId"];

    [_param setValue:KAPPID forKey:@"appId"];

    [_param setValue:KappSecret forKey:@"appSecret"];

    [_param setValue:[CommonTools getTimeScamp] forKey:@"timestamp"];

    NSArray * paramArr = @[[NSString stringWithFormat:@"memberId%@",_param[@"memberId"]],[NSString stringWithFormat:@"appId%@",_param[@"appId"]],[NSString stringWithFormat:@"appSecret%@",_param[@"appSecret"]],[NSString stringWithFormat:@"timestamp%@",_param[@"timestamp"]]];

    [_param setValue:[CommonTools tokenmd5StringFromArray:paramArr] forKey:@"digest"];

    [HTTPRequestTool sendGetAFRequest:url withParameters:_param withSuccess:^(id message) {

        NSDictionary *tempArr = [NSJSONSerialization JSONObjectWithData:message options:NSJSONReadingMutableContainers error:nil];

/**

         *  請求資料  (判斷資料請求的型別)

         */

        DSLog(@"      ----獲取新增球隊成員列表介面--     %@",tempArr);

if (_nameDataArr||_dataSouceArray) {

            [_nameDataArr removeAllObjects];

            [_dataSouceArray removeAllObjects];

        }

for (NSDictionary *tempDic in tempArr[@"teamMemberList"])

        {

            MemberBeanModel *contactModel  = [[MemberBeanModel alloc]init];

            [contactModel setValuesForKeysWithDictionary:tempDic];

            [_dataSouceArray addObject:contactModel];//所有好友資訊陣列

            [_nameDataArr addObject:contactModel.memberNick];//所有好友暱稱陣列

        }

        [self reloadDataUI];

    } andWithFail:^(id message) {

        DSLog(@"error = %@",message);

    }];

}

-(void)reloadDataUI{

    DSLog(@"======  所有人的名字    _nameDataArr======%@",_nameDataArr);

self.m_allName = [[NSMutableArray alloc]init];

for (int i = 0; i < _nameDataArr.count; i ++) {

char firstChar = pinyinFirstLetter([[_nameDataArr objectAtIndex:i]characterAtIndex:0]);

        NSString *youName = [NSString stringWithFormat:@"%c",firstChar];

//不新增重複元素

if (![m_allName containsObject:[youName uppercaseString]]) {

            [self.m_allName addObject:[youName uppercaseString]];

        }

    }

    DSLog(@"======= 所有人名字的首字母大寫  =m_allName========%@",self.m_allName);//所有的索引大寫字母

    [self.m_allName sortUsingSelector:@selector(compare:)];//給所有索引大寫字母排序

    nameDic = [[NSMutableDictionary alloc]init];//每個大寫字母對應的名字字典

//每個section對應的行數列表

for (NSString *sectionString in m_allName) {

        NSMutableArray *rowSource = [[NSMutableArray alloc]init];

for (NSString *charString in _nameDataArr) {

char firstChar = pinyinFirstLetter([charString characterAtIndex:0]);

            NSString *youName = [NSString stringWithFormat:@"%c",firstChar];

if ([sectionString isEqualToString:[youName uppercaseString]]) {

                [rowSource addObject:charString];

            }

        }

        [nameDic setValue:rowSource forKey:sectionString];

    }

    DSLog(@"======nameDic======%@",nameDic);//每個大寫字母對應的名字字典

    [self.m_tableView reloadData];

}

-(void)createData{

self.m_tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, IPHONE_WIDTH, IPHONE_HEIGHT-64)style:UITableViewStylePlain];

    [self.m_tableView registerClass:[AddTMCell class] forCellReuseIdentifier:ADDTECELL];

self.m_tableView.delegate = self;

self.m_tableView.dataSource = self;

self.m_tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

    [self.view addSubview:self.m_tableView];

}

#pragma mark - UITableView delegate

//m_allName 大寫字母   nameDic  所有字母對應的名字

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    NSArray *dicCount = [nameDic objectForKey:[m_allName objectAtIndex:section]];

return [dicCount count];

}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

return [m_allName count];

}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

{

return [m_allName objectAtIndex:section];

}

-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

{

//新增通訊錄索引

    NSMutableArray *toBeRetured = [[NSMutableArray alloc]init];

for (char c = 'A'; c <= 'Z'; c ++) {

        [toBeRetured addObject:[NSString stringWithFormat:@"%c",c]];

    }

return toBeRetured;

}

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

return36 * KSCALE_X;

}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    AddTMCell *cell = [tableView dequeueReusableCellWithIdentifier:ADDTECELL];

if (cell == nil) {

        cell = [[AddTMCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ADDTECELL];

    }

//    cell.selectionStyle = UITableViewCellSelectionStyleNone;

//每個字母對應的名字

    NSString *sectionString = [m_allName objectAtIndex:indexPath.section];

    NSArray *allShowName = [nameDic objectForKey:sectionString];

if (allShowName.count > 0) {

        cell.nameLabel.text = [allShowName objectAtIndex:indexPath.row];

    }

//_dataSouceArray  所有人的資料模型   ---   在通過暱稱去找使用者的頭像

for (MemberBeanModel *contactModel in _dataSouceArray){

if ([contactModel.memberNick isEqualToString:[allShowName objectAtIndex:indexPath.row]]) {

            CGSize nameSize = [contactModel.memberNick sizeWithAttributes:[NSDictionary dictionaryWithObject:[UIFont systemFontOfSize:15 * KWIDTH] forKey:NSFontAttributeName]];

if (nameSize.width < 200 * KSCALE_X ) {

                cell.nameLabel.frame =CGRectMake(155 * KSCALE_X, 31 * KSCALE_X, nameSize.width, 31 * KSCALE_X);

            }

if ([contactModel.memberTeam length]) {

                cell.selectImgView.image = [UIImage imageNamed:@"hyyj"];

                cell.teamNameLab.text = [NSString stringWithFormat:@"%@",contactModel.memberTeam];

                cell.selectImgView.tag = 0;

            }else{

                cell.selectImgView.tag = 1;

                cell.selectImgView.image = [UIImage imageNamed:@"hywx"];

                cell.teamNameLab.text = @"";

            }

__block UIActivityIndicatorView *activityIndicator;

            NSString *urlStr = [NSString stringWithFormat:@"%@thumb/%@",KimgUrl,contactModel.memberNickImg];

            [cell.iconImgView sd_setImageWithURL:[NSURL URLWithString:urlStr] placeholderImage:[UIImage imageNamed:@"mctx_wode"] options:SDWebImageProgressiveDownload progress:^(NSInteger receivedSize, NSInteger expectedSize) {

if (!activityIndicator)

                {

                    activityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

                    activityIndicator.center = cell.iconImgView.center;

                    dispatch_async(dispatch_get_main_queue(), ^{

                        [cell.iconImgView addSubview:activityIndicator];

                    });

                    [activityIndicator startAnimating];

                }

            } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {

                [activityIndicator stopAnimating];

            }];

        }

    }

return cell;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    [tableView deselectRowAtIndexPath:indexPath animated:NO];

    AddTMCell *cell = [self.m_tableView

                             cellForRowAtIndexPath:indexPath ];

    DSLog(@"   teamNameLab   %@",cell.teamNameLab.text);

相關推薦

iOS tableview cell 批量邀請好友

// //  AddTeamMeberViewController.h //  HengTaiXinGolf // //  Created by 歐陽榮 on 16/4/21. //  C

iOS tableview避免複用導致的顯示錯亂問題

需求:用tableview做選擇框,選中打勾,可單選、多選、全選、全不選等。需要在一堆複用的自定義cell中 點選一個cell 在當前cell顯示選中按鈕如果單純的在cell裡新增Btn再在didselect方法中去修改按鈕狀態,那麼就會出現別的cell中也出現了一個選中的按

select框利用Bootstrap-select

前端HTML: <select id="usertype" multiple class="selectpicker" style="width:150px;height: 38px;" > <option value="101" >列印條形碼</optio

iOS---tabletableView的單系統對勾 自定義的單自定義圖片

轉自: https://blog.csdn.net/qq_36747738/article/details/60867635轉自: https://blog.csdn.net/qq_29284809/article/details/50057989//選擇轉賬使用者對勾-(v

iOS tableview cell 去除點效果 和 選擇效果

        UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath]; 去除點選效果     [cell setS

ios cell

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSArray *value = [selectValue

iOS`UITableView`使用系統自定義選中背景色 cell

    最近做一個專案,要用到UITableView中cell的多選和全選。  上網簡單一搜索,發現很多小夥伴對於這塊是自己自定義cell且通過程式碼判斷,再去改變UI來實現。很多方法的理論基礎基本上都是自己給cell寫一個屬性來記錄其是否未被選中的狀態,然後單獨用一個字典

模擬select下拉框之數據源采用模擬Ajax數據--原創

bbb n) nowrap pac inner sel cte spl innerhtml 最近需要一個下拉多選,本來想偷懶的,所以在網上百度了一番,最終還是發現沒有一個符合自己要求的,所以我自己寫了一個插件。下面是GIF動態效果圖展示 相信大家已經看到效果了,接下來

iOS本地照片的實現

-s 問題: tail 滾動 英文 返回 library ans cal 提示:iOS8須要更改一處代碼。即設置scrollview滾動究竟部那塊代碼。大家可去掉再執行源代碼 自己寫起來還是蠻費事的!本來打算使用網上流傳非常久的ELCImagePickerControl

iOS UITableView的

package lin 的人 right show 獲取 fan 技術 ews 一些列表經常需要編輯多選的功能,而UITableview自帶多選刪除的功能,使用起來方便,不需要自己去做數據存儲和選中狀態轉換,可以減少不少開發時間。下面就來介紹下UITableView多選的

select EasyUI

element rip 字段 child class nbsp tex idt log <script type="text/javascript" src="/EasyUI/jquery.min.js"></script> <script t

springMVC回收站checkbox刪除

1、js程式碼:   <% // 根路徑取得 String root = request.getContextPath(); //刪除按鈕呼叫路徑 String deleteAction = root + "/b019/b019001/deleteAll.go"; %>

checkBox篩選條件類似淘寶條件篩選 css js html vue

需求:糾紛要素多選,選中--樣式變化進行標註,若未選要素,點選計算,提示使用者---請選擇要素(類似淘寶,京東的多條件篩選) 如圖: html程式碼: 引用了vue,使用vue的v-for遍歷 css程式碼: /*display: inline  div邊框隨文

老男孩14期自動化運維day9隨筆和作業執行緒批量管理主機

通過多執行緒實現基於paramiko的ssh,sftp的批量管理主機功能 需求: 1.主機分組 2.登入後顯示主機分組,選擇分組後檢視主機列表 3.可批量執行命令、傳送檔案,結果實時返回 4.主機使用者名稱密碼可以不同 只能執行paramiko.exec_command能執行的指令,

老男孩14期自動化運維day9隨筆和作業執行緒批量管理主機

執行緒與程序 1.執行緒: os呼叫CPU進行運算的最小單位,被包含在程序中(就是一堆指令) 小知識點 運算速度比較:CPU>RAM>>磁碟 CPU 稍大於RAM(記憶體),RAM遠大於磁碟 每一個程式的記憶體都是獨立的,不能互相訪問 單核CPU只

老男孩14期自動化運維day9隨筆和作業執行緒批量管理主機

1.paramiko 通過python實現模擬ssh批量登入 在linux系統上 ssh本身也可以用來傳檔案,例如:使用 scp -r /opt/test [email protected]_host:/opt 命令也可以執行傳輸檔案到遠端主機。 (小知識點:Linux中 l.可以

angularjs實現混合純angularjs

需求還是同上一篇一樣。 從這個網站上得到了靈感,相當於是重新設計,然後寫了一遍程式。 網站:http://damoqiongqiu.iteye.com/blog/1917971 例項6 自己所寫的基於這個例子得以實現: 讓我想想原理,我面前所認為,核心思

批量刪除後臺程式碼

 /**        *公告管理--可批量刪除      * @throws IOException         */       @RequestMapping(value="delete_notice", method=RequestMethod.POST, pr

ios tableview cell 側滑刪除

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { returnTRUE; } - (UITableViewCellEditingStyle

Angularjs bootstrap table,支援單擊行選中

最終實現效果: index.html <!DOCTYPE html> <html> <head> <script src="//ajax.googleapis.com/ajax/libs/ang