开发者

How to pass an array to my custom cell class

开发者 https://www.devze.com 2023-01-29 07:04 出处:网络
I have a TableVi开发者_如何学JAVAew with my custom cell class where I have a pickerview. I want to pass an array to populate pickerview with data. How to pass it. Is my approach correct?You don\'t pa

I have a TableVi开发者_如何学JAVAew with my custom cell class where I have a pickerview.

I want to pass an array to populate pickerview with data. How to pass it. Is my approach correct?


You don't pass anything to a TableViewCell. Instead you have to implement

  • UITableViewDelegate
  • UITableViewDatasource

to populate the tableView. And

  • UIPickerViewDelegate
  • UIPickerViewDatasource

for the pickers.


I have included pickerview delegate and datasource within table cell and it works fine... Passing the array is same as to any view.

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号