2010-12-08 3 views

답변

1

TableViewCell에 아무 것도 전달하지 않습니다. 대신 당신은있는 tableView를 채우는

를 구현해야합니다. 그리고 선택기에 대한

.

+0

BTW : 그것은 내가 각 셀 pickerviews이 있거나 할 수있는 방법이 있다는 것을 고려, 나는 테이블보기 셀 클래스 선택기 위임 및 데이터 소스를 배치해야 – vikingosegundo

+0

스크롤에 오면 세포의 내부 선택기 아주 제대로 작동하지 않을 수 있습니다 테이블 뷰 클래스에서. tableview 클래스에서 pickerview 대리인이 있으면 별도의 데이터로 pickerview를 채울 수 있습니까? –

+0

아니, 그들은 확실히 세포에 속하지 않습니다. [TableView 프로그래밍 가이드] (http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html%23//apple_ref/doc/uid/TP40007451) – vikingosegundo

0

테이블 셀 내에 pickerview 대리자 및 데이터 소스가 포함되어 있으며 정상적으로 작동합니다. 배열을 전달하는 것은 모든보기와 동일합니다.

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

질문을 답으로 게시하는 대신 원래의 질문을 편집하십시오. – vikingosegundo

+0

보기에 컨트롤러에 속한 논리가 채워지므로이 코드는 MVC를 위반합니다. 또한 어떤 회원도 석방하지 않으므로 새어 나옵니다. – vikingosegundo

+0

고맙습니다 vikingosgundo에 대한 조언. 정말 감사 –

관련 문제