2010-12-08 37 views

Répondre

1

Vous ne transmettez rien à TableViewCell. Au lieu de cela, vous devez mettre en œuvre

pour alimenter le tableView. Et

pour les préparateurs.

+0

BTW: Pickers à l'intérieur des cellules peuvent fonctionner très mal s'il s'agit de défilement – vikingosegundo

+0

dois-je placer Picker délégué et source de données dans le tableau Voir classe cellulaire, étant donné que je pickerviews dans chaque cellule ou est-il un moyen de faire dans la classe tableview. Si le pickview délègue dans la classe tableview, comment est-ce que je remplirais les pickmarks avec ses données séparées? –

+0

Non, ils n'appartiennent certainement pas à la cellule. voir le [Guide de programmation TableView] (http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html%23//apple_ref/doc/uid/TP40007451) – vikingosegundo

0

J'ai inclus le délégué pickerview et la source de données dans la cellule du tableau et cela fonctionne bien ... Le passage du tableau est le même que pour n'importe quelle vue.

//////////////ScrollCell.h 

@interface ScrollCell : UITableViewCell <UIPickerViewDataSource, UIPickerViewDelegate>{ 
    UILabel *textlabel; 
    UIPickerView *pickerview; 

    NSString *textfieldValue; 
    NSString *scrollerValue; 
    NSArray *scrollerData; 
} 
@property (nonatomic,retain)UILabel *textlabel; 
@property (nonatomic,retain)UIPickerView *pickerview; 
@property (nonatomic,retain)NSArray *scrollerData; 

@property (nonatomic,retain)NSString *textfieldValue; 
@property (nonatomic,retain)NSString *scrollerValue; 


-(NSString *)getTextfiledValue; 
-(NSString *)getScrollerValue; 
-(void)setScrollerData:(NSArray *)array; 
@end 


/////////ScrollerCell.m 

// 
// ScrollCell.m 
// MultipleDetailViews 
// 
// Created by Ruslan Karimov on 12/5/10. 
// Copyright 2010 Eventagrate. All rights reserved. 
// 

#import "ScrollCell.h" 
#import "Answers.h" 

@implementation ScrollCell 
@synthesize textlabel, pickerview, scrollerData, textfieldValue, scrollerValue; 
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 



    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     textlabel = [[UILabel alloc]init]; 
     textlabel.textAlignment = UITextAlignmentLeft; 
     textlabel.font = [UIFont systemFontOfSize:25]; 
     textlabel.textColor =[UIColor blackColor]; 
     [self.contentView addSubview:textlabel]; 

     pickerview = [[UIPickerView alloc]init]; 
     [self.contentView addSubview:pickerview]; 

     scrollerData = [[NSArray alloc] init]; 

    } 
    return self; 
} 


- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 

    [super setSelected:selected animated:animated]; 

    CGRect contentRect = self.contentView.bounds; 
    CGFloat boundsX = contentRect.origin.x; 
    CGRect frame; 


    frame= CGRectMake(boundsX+10 ,+10, 300, 25); 
    textlabel.frame = frame; 

    //frame= CGRectMake(boundsX+200 ,0, 300, 100); 
    self.pickerview.frame = CGRectMake(boundsX+200 ,0, 300, 163); 

    self.pickerview.delegate = self; 
    //self.pickerview. 

} 

-(void)setScrollerData:(NSArray *)array 
{ 
    //[self.scrollerData arrayByAddingObjectsFromArray:array]; 
    scrollerData = array; 
    NSLog(@"from scrolltable cell: %i",[self.scrollerData count]); 
} 

-(NSString *)getTextfiledValue 
{ 
    return self.textfieldValue; 
} 
-(NSString *)getScrollerValue 
{ 
    return self.scrollerValue; 
} 

//PICKER VIEW CONTROL 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView { 
    return 1; 
} 
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component { 
    return [scrollerData count]; 
} 

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    Answers *template = (Answers *)[self.scrollerData objectAtIndex:row]; 
    return template.answer_title; 
    //return @"fff"; 
} 

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 


} 


- (void)dealloc { 
    [super dealloc]; 
} 


@end 
+0

Veuillez modifier votre langue actuelle et non une réponse. – vikingosegundo

+0

Ce code viole MVC, comme une vue est bourrée de logique qui appartient à un contrôleur. En outre, il fuit, car il ne libère aucun membre. – vikingosegundo

+0

merci vikingosgundo pour les conseils. j'apprécie vraiment cela –