2010-12-08 2 views

Antwort

1

Sie passieren nicht, etwas zu einem TableViewCell. Stattdessen haben Sie

zu implementieren, um die Tableview zu füllen. Und

für die Pflücker.

+0

BTW: Pickers innerhalb von Zellen könnte sehr schlecht funktionieren, wenn es – vikingosegundo

+0

zum Scrollen kommt sollte ich Picker Delegate und Datenquelle in der Tabellenansicht Zell Klasse platzieren, wenn man bedenkt, dass ich pickerviews in jeder Zelle oder ist es eine Möglichkeit, zu tun es in der Tabellenansicht Klasse. Wenn der PickerView-Delegat in der TableView-Klasse wie würde ich Pickerviews mit seinen separaten Daten füllen? –

+0

Nein, sie gehören sicher nicht in die Zelle. finden Sie in der [Tableview Programming Guide] (http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html%23//apple_ref/doc/uid/TP40007451) – vikingosegundo

0

Ich habe Pickerview Delegat und Datenquelle innerhalb der Tabelle Zelle enthalten und es funktioniert gut ... Weitergabe des Arrays ist das gleiche wie zu jeder Ansicht.

//////////////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

Bitte bearbeiten Sie Ihre ursprüngliche Frage, anstatt eine Frage als Antwort zu posten. – vikingosegundo

+0

Dieser Code verletzt MVC, da eine View mit einer Logik gefüllt ist, die in einen Controller gehört. Auch es ist undicht, da es kein Mitglied freigibt. – vikingosegundo

+0

danke vikingosgundo für die berät. Ich schätze es sehr –

Verwandte Themen