我有一个tableview,其中我提供了复选标记作为多个单元格的附件。 现在我希望获得具有复选标记的所有单元格的值。
#import "HealthIssues.h"
@interface HealthIssues ()<UITableViewDataSource,UITableViewDelegate>
{
NSIndexPath* checkedIndexPath;
}
@property (nonatomic, retain) NSIndexPath* checkedIndexPath;
@end
@implementation HealthIssues
@synthesize HealthIssuesTV;
@synthesize checkedIndexPath;
- (void)viewDidLoad {
[super viewDidLoad];
PickerList=[[NSArray alloc]initWithObjects:@"None" ,@"Diabetes", @"Heart Problem" , @"Thyroid" , @"Over Weight" , @"Kidney Issues" , @"Lever Issues" , @"Vitamins Deficiency" , @"Blood Pressure" , nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [PickerList count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==Nil) {
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
if (indexPath.row == 0){
if ([self.checkedIndexPath isEqual:indexPath])
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
}
cell.textLabel.text = [PickerList objectAtIndex:indexPath.row];
cell.tintColor=[UIColor blueColor];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
{
int z=0;
if (indexPath.row==0)
{
NSArray *visibleCells = [tableView visibleCells];
for (UITableViewCell *cell in visibleCells)
{
if (z==0)
{
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
z++;
}
else
{
[cell setAccessoryType:UITableViewCellAccessoryNone];
z++;
}
}
}
else
{
if ([selectedCell accessoryType] == UITableViewCellAccessoryNone)
{
[selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else
{
[selectedCell setAccessoryType:UITableViewCellAccessoryNone];
}
[tableView reloadData];
}
}
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
}
@end
根据我的要求,这件作品非常适合我。现在我想在词典中存储选定的行。
答案 0 :(得分:2)
@interface selectUsers ()
{
NSMutableArray *selected_ids;
}
- (void)viewDidLoad {
[super viewDidLoad];
selected_ids = [[NSMutableArray alloc]init];
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *_id = [[yourarray objectAtIndex:indexPath.row]valueForKey:@"_id"];
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
[selected_ids removeObject:_id];
cell.accessoryType = UITableViewCellAccessoryNone;
} else {
[selected_ids addObject:_id];
cell.accessoryType=UITableViewCellAccessoryCheckmark;
}
}
在所需的位置使用selected_ids数组。
答案 1 :(得分:1)
尝试从数组的数据源获取值并获取UITableView的所有选定行: 以下代码将为您提供所选行的所有索引路径:
NSArray *arrIndexpaths = [YourTableView indexPathsForSelectedRows]; // Returns indexpaths for multiple selection in Table view.
然后通过indexpath.row和indexpath.section从数组中获取值,无论你在数据源方法中使用了什么。
答案 2 :(得分:0)
首先,你应该这样做:
tableView.allowsMultipleSelection = YES;
然后您可以通过以下方式获取所选行的列表:
NSArray *selectedIndexPaths = [self.tableView indexPathsForSelectedRows];
由于您现在拥有所选行的列表,因此可以获取行的行或数据。
答案 3 :(得分:0)
您可以使用数组。
$.ajax({
url: 'https://api.spotify.com/v1/users/wanderlustfest/playlists/5ehqaKNCIjtIuwNOALskcK/followers',
headers: {
'Authorization': 'Bearer ' + <your_access_token>
},
method: 'PUT',
success: function() {
// do something
},
dataType: 'html',
error: function(e) {
console.error(e);
}
});
在- (void)viewDidLoad
{
arrData=[[NSMutableArray alloc]init];
}
上将您的值添加到数组中。
didSelectRowAtIndexPath
可能会帮助你。
答案 4 :(得分:0)
试试这个..
$(document).ready(function(){
$("#up").on('click',function(){
$("#incdec input").val(parseInt($("#incdec input").val())+1);
});
$("#down").on('click',function(){
$("#incdec input").val(parseInt($("#incdec input").val())-1);
});
});
//实例变量,在viewDidLoad中进行初始化
我假设您使用NSMutableArray *selectedIndexes ;
来选择单元格(我的意思不是自定义按钮操作)
didSelectRowAtIndexPath
现在,您可以使用-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath
{
if ([selectedIndexes containsObject:indexPath])
{
[selectedIndexes removeObject:indexPath];
}
else
{
[selectedIndexes addObject:indexPath];
}
}
数组
表示前selectedIndexes
编辑:
在选择过程结束后从selectedIndexes中删除所有对象
答案 5 :(得分:0)
@interface RestTableViewController ()<UISearchBarDelegate>{
NSMutableSet *setTemp;
// NSMutableArray *setTemp;
}
在ViewDidLoad
中- (void)viewDidLoad {
[super viewDidLoad];
setTemp = [[NSMutableSet alloc] initWithCapacity:1];
. . .
}
在cellForRowAtIndexPath
中cell.selectionStyle = UITableViewCellSelectionStyleNone;
[self markCell:cell atIndex:indexPath.row];
创建方法
- (void)markCell:(UITableViewCell *)cell atIndex:(NSInteger)index{
if ([setTemp containsObject:[NSNumber numberWithInteger:index]]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
}
在didSelectRowAtIndexPath
中[tableView deselectRowAtIndexPath:indexPath animated:YES];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
{
// Restaurent is my Object File
Restaurent *obj = [restMutableArray objectAtIndex:indexPath.row];
if ([setTemp containsObject:[NSNumber numberWithInteger:indexPath.row]]) {
[setTemp removeObject:[NSNumber numberWithInteger:indexPath.row]];
// tempMainArray is an array which manages the title of selected or deselected Rows . . .
[tempMainArray removeObject:obj.strTitle];
NSLog(@"Selected Row Data %@",tempMainArray);
}
else {
[setTemp addObject:[NSNumber numberWithInteger:indexPath.row]];
[tempMainArray addObject:obj.strTitle];
NSLog(@"Selected Row Data %@",tempMainArray);
}
[self markCell:cell atIndex:indexPath.row];
}
选择所有单元格
#pragma mark : Select All Data Method. . .
- (IBAction)actionBtnClicked:(id)sender {
{
[setTemp removeAllObjects];
for (int i = 0 ; i < [restMutableArray count]; i++) {
Restaurent *obj = [restMutableArray objectAtIndex:i];
[tempMainArray addObject:obj.strTitle];
[setTemp addObject:@(i)];
}
NSLog(@"%@",tempMainArray);
[self.tableView reloadData];
}