PickerView in TableViewCell darstellen

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

  • PickerView in TableViewCell darstellen

    Hallo,
    ich möchte in einer IOS 7 App eine PickerView in einer TableViewCell darstellen. Allerdings klappt das nicht, die Zelle wo der Picker sein sollte ist leer.

    Ich habe mir eine Klasse erstellt, welche eine Subclass von UITableViewCell ist erstellt, wo ich mir meine Zelle "nach meinen Wünschen zusammenstelle".

    Hier der Code dieser Klasse (.m Datei + header):

    Quellcode

    1. ​#import <UIKit/UIKit.h>
    2. // Header
    3. @interface SettingCellForBrush : UITableViewCell <UIPickerViewDelegate, UIPickerViewDataSource>
    4. {
    5. NSArray *colorItems;
    6. }
    7. @end
    8. //Implementation
    9. #import "SettingCellForBrush.h"
    10. @implementation SettingCellForBrush
    11. - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    12. {
    13. self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    14. if (self) {
    15. // Initialization code
    16. colorItems = [[NSArray alloc]initWithObjects:@"schwarz", @"rot", @"grün", @"blau",@"gelb", @"oragne", @"braun", nil];
    17. }
    18. return self;
    19. }
    20. - (void)awakeFromNib
    21. {
    22. // Initialization code
    23. }
    24. - (void)setSelected:(BOOL)selected animated:(BOOL)animated
    25. {
    26. [super setSelected:selected animated:animated];
    27. // Configure the view for the selected state
    28. }
    29. - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    30. {
    31. return 2;
    32. }
    33. // returns the # of rows in each component..
    34. - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
    35. {
    36. if (component == 0)
    37. {
    38. return colorItems.count;
    39. }
    40. if (component == 1)
    41. {
    42. return 10;
    43. }
    44. return 0;
    45. }
    46. - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
    47. {
    48. if (component == 0)
    49. {
    50. return [colorItems objectAtIndex:row];
    51. }
    52. if (component == 1)
    53. {
    54. NSString *temp = @(row).stringValue;
    55. return temp;
    56. }
    57. return 0;
    58. }
    59. @end
    Alles anzeigen


    Hier der Code, mit welchem die Zelle zur "Dynamischen" TableView hinzugefügt wird:

    Quellcode

    1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. // Cellidentifier für die verschiedenen Zellen der Tableview
    4. static NSString *cellIdentifier1 = @"brushSettings";
    5. static NSString *cellIdentifier2 = @"saveCell";
    6. static NSString *cellIdentifier3 = @"saveButtonCell";
    7. static NSString *cellIdentifier4 = @"gridCell";
    8. // Zellen für die Einzelnen einstellungen
    9. SettingCellForBrush *brushSettingsCell;
    10. SettingCellWithSwitch *gridStatCell;
    11. SettingCellWithTextField *saveDrawingCell;
    12. SettingCellWithButton *saveDrawingButtonCell;
    13. //DrawSettingsLoader *load = [[DrawSettingsLoader alloc]init];
    14. // festlegen der Linienstärke
    15. if (indexPath.row == 0 && indexPath.section == 0)
    16. {
    17. brushSettingsCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier1 forIndexPath:indexPath];
    18. return brushSettingsCell;
    19. }
    20. // usw...
    Alles anzeigen