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
}
@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
@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