I got weird problem, while using GMGridView. Actually i'm using GMGridview to show the restaurant tables. If i selected Table1(that means first cell), It should change to redColor(that means it is occupied table). I did this, But my problem is when i select a cell 1(redcolor), that redcolor is showing in all classes whereever i used GMGridview. Thats is completely wrong, without any selection in the another class, it is showing as selected one.
In the images below, if i selected 1, it is showing 7 also selected.....
And my code is
- (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];
}
And that to i'm reloading the gridview in viewWillAppear and viewDidLoad also. I didnt find anything useful. Please help me out guys.
- (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;
}
//TRY TO RELOAD THE MG_GRIDVIEW HERE
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With