使用pickerView填充多个节tableView [英] Populating multiple sections tableView using pickerView

查看:51
本文介绍了使用pickerView填充多个节tableView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个tableview,其数据是从pickerView(3列)中选择的.下面是代码:

I have a tableview whose data are selected from a pickerView(3 columns).Here is the code:

- (void)viewDidLoad {
    [super viewDidLoad];
    //PickerView content and sort them for displaying
    Number=@[@"Trans",@"2005",@"2006",@"2007",@"2008",@"2009",@"2010",@"2011",@"2012",@"2013",@"2014",@"2015",@"2016"];
    Season=@[@"Spring",@"Summer",@"Fall"];
    Course=@[@"CHEM1100 General Chem I",@"CHEM2100 General Chem II",@"CHEM3511 Org Chem",@"CHEM3521 Org Chem II"];
    Course =[Course sortedArrayUsingSelector:@selector(compare:)];
    Number =[Number sortedArrayUsingSelector:@selector(compare:)];
    Season =[Season sortedArrayUsingSelector:@selector(compare:)];

    _tableView.delegate = self;
    _tableView.dataSource = self;

}

要填充tableView,我使用一个按钮,当按下按钮时,选择pickerView会将数据发送到tableView

To populate the tableView, I use a button, when the button is pushed, the selection of pickerView will send data to tableView

- (IBAction)addCourse:(UIButton *)sender {

    NSInteger numRow=[picker selectedRowInComponent:kNumComponent];//0=1st,1=2nd,etc
    NSInteger SeaRow=[picker selectedRowInComponent:kSeaComponent];//0=fall,1=spring,2=summer
    NSInteger CourseRow=[picker selectedRowInComponent:kCourseComponent];

    NSString *num=Number[numRow];
    NSString *season=Season[SeaRow];
    NSString *course=Course[CourseRow];

    NSString *CourseToAdd=[[NSString alloc ]initWithFormat:@"%@ ",course];
    NSString *SeasonToAdd=[[NSString alloc ]initWithFormat:@"%@ ",season];
    NSString *YearToAdd=[[NSString alloc ]initWithFormat:@"%@ ",num];

    [self.msgCourse addObject:CourseToAdd];
    [self.msgSeason addObject:SeasonToAdd];
    [self.msgYear addObject:YearToAdd];
    [_tableView reloadData];
}

要使用tableView显示数据,我使用

To show the data in tableView, I use

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{



    UITableViewCell *cell = nil;
    cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

    if(!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
    }


    cell.textLabel.text=[self.msgCourse objectAtIndex:indexPath.row];

    return cell;

}

确定行和节

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    //return [self.msgYear  count];
    return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [self.msgCourse  count];
}

运行正常.输出如所附图片所示. 这是我的问题:

It is running fine. The output is shown in the picture attached. Here are my questions:

(1)我希望tableView在多个部分中显示.例如,"2005年秋季"是一个部分,在此部分中,显示了课程.换句话说,在pickerview中选择的前两列将构成部分标题.

(1) I want the tableView shown in more than one sections. For example, "2005 Fall" is one section, inside this section, the courses are shown. In other words, the first two columns selected in the pickerview will form the section title.

(2)如何对每个部分的结果进行排序?

(2) How to sort the results in each section?

推荐答案

您可以在其中定义节和行的数量,如下所示:

You could define number of sections and rows in it as following:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
 // number of courses?
    return 3;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return ((section == 0) ? 1 : 3);
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    // return appropriate cell(s) based on section
    if(indexPath.section == 0) 
    {
        // Return 1 cell
    }
    else if(indexPath.section == 1) 
    {
        switch(indexPath.row) {
            case 0: // Initialize cell 1
                    break;
            case 1: // Initialize cell 2
                    break;
            ...
        }
    }
    return cell;
}

这是学习更多内容的好教程:

Here are the good tutorials to learn more:

  • http://www.appcoda.com/ios-programming-index-list-uitableview/
  • http://briterideas.blogspot.com/2012/07/uitableview-how-to-part-3-multiple.html
  • https://owenandrewsblog.wordpress.com/2012/01/29/uitableview-sections-tutorial/

这篇关于使用pickerView填充多个节tableView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆