Je suis dans le besoin de quelqu'un pour m'aider à commuter des cellules personnalisées lorsqu'il est sélectionné en utilisant didSelectRowAtIndexPath
, donc l'idée est d'avoir personnalisé cell1
définir comme un état et quand l'utilisateur le sélectionne cela va disparaître et cell2
se fanera dans lequel montre la capitale de cet état, mais d'autres cellules resteront comme cell1 (ou états) sauf celui qui a été choisi.TableView et les cellules personnalisées
0
A
Répondre
1
Voici comment Je le ferais ...
tableView.h:
#import <UIKit/UIKit.h>
@interface tableView : UITableViewController {
NSMutableArray *tableArray;
}
- (void)changeTitleAtIndexPath:(NSIndexPath *)indexPath;
@end
tableview.m (ajouter ces méthodes):
en - (void) viewDidLoad ajouter:
tableArray = [[NSMutableArray alloc] init];
[tableArray addObject:[NSMutableArray arrayWithObjects:[NSNumber numberWithBool:NO],@"City1",@"Capital1",nil]];
[tableArray addObject:[NSMutableArray arrayWithObjects:[NSNumber numberWithBool:NO],@"City2",@"Capital2",nil]];
[tableArray addObject:[NSMutableArray arrayWithObjects:[NSNumber numberWithBool:NO],@"City3",@"Capital3",nil]];
[tableArray addObject:[NSMutableArray arrayWithObjects:[NSNumber numberWithBool:NO],@"City4",@"Capital4",nil]];
changement:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
if (![[[tableArray objectAtIndex:indexPath.row] objectAtIndex:0] boolValue]) {
cell.textLabel.text = [[tableArray objectAtIndex:indexPath.row] objectAtIndex:1];
}else {
cell.textLabel.text = [[tableArray objectAtIndex:indexPath.row] objectAtIndex:2];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self changeTitleAtIndexPath:indexPath];
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
}
ajouter:
- (void)changeTitleAtIndexPath:(NSIndexPath *)indexPath{
BOOL newBool = ![[[tableArray objectAtIndex:indexPath.row] objectAtIndex:0] boolValue];
[[tableArray objectAtIndex:indexPath.row] replaceObjectAtIndex:0 withObject:[NSNumber numberWithBool:newBool]];
}
0
vous devez utiliser une seule cellule, avec des vues multiples (par des vues avec alpha fixées à la transparence, ou masquer)
lorsque la cellule est sélectionnée, passer les vues à l'intérieur d'un bloc d'animation
grâce JNK, c'est exactement ce que je cherchais, ce qui est grand . – tosi