Suche "Popup" TableView

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Suche "Popup" TableView

    Hallo Leute,

    ich würde gerne innerhalb einer TableView folgende "PopUp" Funktionalität haben:

    >>Ein Tap auf die Zelle "vergrößert" die Zelle soweit, dass detailierte Infos zu dem entsprechenden Topic angezeigt werden. Ein erneuter Tap schließt die Detailinfos.

    Bsp:

    -----
    ZELLE 1
    -----

    -> wird getapped

    -----
    ZELLE 1
    Welche einen Text mit
    diversen Daten enthält
    welche erst nach einem
    Klick sichtbar werden
    -----


    Kennt jemand eine entsprechende Klasse? Wie müsste ich sonst vorgehen?
    Entschuldigt bitte meine unglaublich guten "Zeichen"-Skills :D

    lG
  • hab genau das gleiche heute für eine meiner apps gemacht.
    jetzt beim lesen dieses threads erkenne ich meine methode im link von Markus Müller wieder, nur etwas anders.
    eine int, die die aktuell erweiterte row number speichert.
    bei jedem klick tableview neu laden, zuvor aber nicht vergessen die int zu verändern.
    ich habe allerdings 2 xibs mit 2 tableviewcells angelegt.
    noch zu beachten ist natürlich die heightforrowatindexpath, wenn die erweiterte cell mehr platz brauch, wovon ich einmal ausgehe :D

    schaut dann bei mir so aus, also falls es das ist was du suchst, ist es wirklich nicht schwer zu implementieren:
    [Blockierte Grafik: http://s7.directupload.net/images/130606/c7pr5b9e.png]
  • Hey Leute,

    soweit so gut. Nur klappt das ganze noch nicht ganz wie geplant.

    1)
    Wenn ich NICHT die letzte vorhandene Zelle auswähle -> alles ok
    Wenn ich DIE LETZTE ZELLE auswähle, werden alle darauffolgenden in der entsprechenden (großen) Größe dargestellt.
    (Siehe Screenshots)

    Wo liegt der Fehler?

    2)
    In der cellForRowAtIndexPath Methode geb ich als Typ immer "ExtendedCell" an, obwohl die 2te Auswahl eine "CompactCell" ist. Das klappt, weil beide entsprechend einen cellHeaderLabel besitzen.
    Leider spuckt mir Xcode Fehler aus, wenn ich die Vaterklasse UITableViewCell nehme.

    Kann ich dem Compiler iwie versprechen das es die folgenden properties gibt / das ganze anders umgehen um keine Fehler in Xcode zuerhalten?


    CODE:

    Quellcode

    1. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    2. {
    3. // Return the number of sections.
    4. return 1;
    5. }
    6. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    7. {
    8. // Return the number of rows in the section.
    9. return [self.compactCellContent count];;
    10. }
    11. -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    12. {
    13. //If this is the selected index we need to return the height of the cell
    14. NSLog(@"crrtRow %d", indexPath.row);
    15. if(self.crrtSelPath == indexPath.row)
    16. {
    17. return 150;
    18. }else{
    19. return 30;
    20. }
    21. }
    22. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    23. {
    24. static NSString *CellIdentifier;
    25. ExtendedCell *cell; //hier geht kein UITableViewCell weil die Properties dann nicht bekannt sind
    26. if(indexPath.row == self.crrtSelPath){
    27. CellIdentifier = @"ExtendedCell";
    28. cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    29. cell.cellHeaderLabel.text = [self.compactCellContent objectAtIndex:indexPath.row];
    30. cell.cellTV.text = [self.extendedCellContent objectAtIndex:indexPath.row];
    31. }
    32. else{
    33. CellIdentifier = @"CompactCell";
    34. cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    35. cell.cellHeaderLabel.text = [self.compactCellContent objectAtIndex:indexPath.row];
    36. }
    37. return cell;
    38. }
    39. #pragma mark - Table view delegate
    40. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    41. {
    42. if(self.crrtSelPath == indexPath.row)
    43. {
    44. self.crrtSelPath = -1;
    45. //[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    46. [tableView reloadData];
    47. return;
    48. }else{
    49. self.crrtSelPath = indexPath.row;
    50. //[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    51. [tableView reloadData];
    52. }
    53. }
    Alles anzeigen