Mam dziwny problem, podczas korzystania z GMGridView. Właściwie używam GMGridview do wyświetlania tabel restauracji. Jeśli wybiorę Table1 (oznacza to pierwszą komórkę), powinien on zmienić się na redColor (co oznacza, że jest to zajęta tabela). Zrobiłem to, ale mój problem polega na tym, że wybieram komórkę 1 (czerwony kolor), że czerwony kolor jest wyświetlany we wszystkich klasach, w których używałem GMGridview. Jest to całkowicie błędne, bez wyboru w innej klasie, jest wyświetlane jako wybrane.Wybór GMGridView jest nadrzędny
W poniższych zdjęć, jeśli wybrano 1, to pokazuje również wybrany 7 .....
A mój kod jest
- (GMGridViewCell *)GMGridView:(GMGridView *)gridView cellForItemAtIndex:(NSInteger)index{
CGSize size = [self GMGridView:gridView sizeForItemsInInterfaceOrientation:[[UIApplication
sharedApplication] statusBarOrientation]];
GMGridViewCell *cell = [gridView dequeueReusableCell];
int isOccupied = [[[self.arrayOfoccupiedTables objectAtIndex:index] objectForKey:@"TStatus"] intValue];
if (!cell)
{
cell = [[[GMGridViewCell alloc] init] autorelease];
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
cell.contentView = view;
}
[[cell.contentView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
UILabel *label = [[UILabel alloc] initWithFrame:cell.contentView.bounds];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;
label.textAlignment = UITextAlignmentCenter;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont fontWithName:APPFONTLI size:22.0f];
label.adjustsFontSizeToFitWidth = YES;
if (isOccupied == 100001) {
label.textColor = [UIColor whiteColor];
label.highlightedTextColor = [UIColor blackColor];
label.backgroundColor = [UIColor redColor];//redColor];
//colorWithRed:43.0f/255.0f green:150.0f/255.0f blue:0.0f/255.0f alpha:1.0f];//GreenColor
label.text = [[self.filtredArray objectAtIndex:index] objectForKey:@"TableName"];
}else if(isOccupied == 100002) {
label.textColor = [UIColor whiteColor];
label.highlightedTextColor = [UIColor blackColor];
label.backgroundColor = [UIColor colorWithRed:43.0f/255.0f green:150.0f/255.0f
blue:0.0f/255.0f alpha:1.0f];
//colorWithRed:215.0f/255.0f green:215.0f/255.0f blue:0.0f/255.0f alpha:1.0f];//GreenColor
label.text = [[self.filtredArray objectAtIndex:index] objectForKey:@"TableName"];
}
else if(isOccupied == 100003) {
label.textColor = [UIColor blackColor];
label.highlightedTextColor = [UIColor whiteColor];
label.backgroundColor = [UIColor colorWithRed:215.0f/255.0f green:215.0f/255.0f blue:0.0f/255.0f alpha:1.0f];// Yellow Color
//colorWithRed:229.0f/255.0f green:229.0f/255.0f blue:229.0f/255.0f alpha:1.0f];//GrayColor
label.text = [[self.filtredArray objectAtIndex:index] objectForKey:@"TableName"];
}
[cell.contentView addSubview:label];
return cell;
}
- (void)GMGridView:(GMGridView *)gridView didTapOnItemAtIndex:(NSInteger)position
{
NSLog(@"Did tap at index %d", position);
[[SoundManager sharedSoundManager] playSound:SELECTED];
//[self performSelector:@selector(registerTableToTheServer:) withObject:nil afterDelay:0.2];
[self registerTableToTheServer:[[self filtredArray] objectAtIndex:position]];
NSInteger tableId = [[[[self filtredArray] objectAtIndex:position] objectForKey:@"Table_id"] intValue];
[self createPlistWithTableId:tableId];
[_gmGridView reloadData];
}
i że jestem w przeładunku GridView viewWillAppear i viewDidLoad również. Nie znalazłem nic przydatnego. Proszę, pomóżcie mi chłopaki.