在uitableViewCell中按升序排列值

时间:2012-05-02 06:10:08

标签: iphone ios

在我的应用程序中使用带有4个按钮的scrollView。 当我们点击任何一个按钮时,表格将逐行显示数据。

现在我的问题是将它们按升序排列。

示例代码是

这是为滚动视图添加按钮,这是在一个类

        browseScrollView.hidden = NO;
    browseScrollView.frame = CGRectMake(15, 57, 480, 44);
    [browseScrollView setContentSize:CGSizeMake(600, 40)];        
    firstButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [firstButton setFrame:CGRectMake(5,3,91,37)];
    [firstButton setImage:[UIImage imageNamed:@"genres.png"] forState:UIControlStateNormal];
    firstButton.tag = 1;
    [firstButton addTarget:self action:@selector(fourthPageSongSelction:) forControlEvents:UIControlEventTouchDown];
    [browseScrollView addSubview:firstButton];

    secondButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [secondButton setFrame:CGRectMake(110,3,91,37)];
    [secondButton setImage:[UIImage imageNamed:@"artists.png"] forState:UIControlStateNormal];
    secondButton.tag = 2;
    [secondButton addTarget:self action:@selector(fourthPageSongSelction:) forControlEvents:UIControlEventTouchDown];
    [browseScrollView addSubview:secondButton];

    thirdButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [thirdButton setFrame:CGRectMake(209,3,91,37)];
    thirdButton.tag = 3;
    [thirdButton setImage:[UIImage imageNamed:@"albums.png"] forState:UIControlStateNormal];
    [thirdButton addTarget:self action:@selector(fourthPageSongSelction:) forControlEvents:UIControlEventTouchDown];
    [browseScrollView addSubview:thirdButton];


    fourthButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [fourthButton setFrame:CGRectMake(317,3,91,37)];
    fourthButton.tag = 4;
    [fourthButton setImage:[UIImage imageNamed:@"songs.png"] forState:UIControlStateNormal];
    [fourthButton addTarget:self action:@selector(fourthPageSongSelction:) forControlEvents:UIControlEventTouchDown];
    [browseScrollView addSubview:fourthButton];

    tableView.hidden = NO;
    tableView.frame = CGRectMake(5, 100, 235, 200);
    tableView.showsVerticalScrollIndicator = NO;

这是我用来在TableViewCell的子类的另一个类中向表行添加值的方法

-(void) showFourthPageControlValues :(int) currRow :(int)val
{
int value = val;
TonifyAppDelegate *appDelegate = (TonifyAppDelegate *)[UIApplication sharedApplication].delegate;

if (value == 1) 
{
    genresLabel1.hidden = NO;
    genresLabel2.hidden = NO;

    genresButton.hidden = NO;

    artistLabel1.hidden = YES;
    artistLabel2.hidden = YES;
    artistButton.hidden = YES;

    albumLabel1.hidden = YES;
    albumLabel2.hidden = YES;
    albumButton.hidden = YES;

    songsLabel1.hidden = YES;
    songsLabel2.hidden = YES;
    songsButton.hidden = YES;

    [genresLabel1 setText:[[appDelegate.songsList objectAtIndex:currRow] valueForKey:@"Genre"]];
    [genresLabel2 setText:[[appDelegate.songsList objectAtIndex:currRow] valueForKey:@"SongName"]];
    [genresButton addTarget:self.delegateController action:@selector(songTypeSelAction:) forControlEvents:UIControlEventTouchUpInside];
    genresButton.tag = currRow;
}

if (value == 2) 
{
    genresLabel1.hidden = YES;
    genresLabel2.hidden = YES;
    genresButton.hidden = YES;

    artistLabel1.hidden = NO;
    artistLabel2.hidden = NO;
    artistButton.hidden = NO;

    albumLabel1.hidden = YES;
    albumLabel2.hidden = YES;
    albumButton.hidden = YES;

    songsLabel1.hidden = YES;
    songsLabel2.hidden = YES;
    songsButton.hidden = YES;

    [artistLabel1 setText:[[appDelegate.songsList objectAtIndex:currRow] valueForKey:@"ArtistName"]];
    [artistLabel2 setText:[[appDelegate.songsList objectAtIndex:currRow] valueForKey:@"SongName"]];

    [artistButton addTarget:self.delegateController action:@selector(songTypeSelAction:) forControlEvents:UIControlEventTouchUpInside];
    artistButton.tag = currRow;
}
if (value == 3) 
{
    genresLabel1.hidden = YES;
    genresLabel2.hidden = YES;
    genresButton.hidden = YES;

    artistLabel1.hidden = YES;
    artistLabel2.hidden = YES;
    artistButton.hidden = YES;

    albumLabel1.hidden = NO;
    albumLabel2.hidden = NO;
    albumButton.hidden = NO;

    songsLabel1.hidden = YES;
    songsLabel2.hidden = YES;
    songsButton.hidden = YES;

    [albumLabel1 setText:[[appDelegate.songsList objectAtIndex:currRow] valueForKey:@"AlbumName"]];
    [albumLabel2 setText:[[appDelegate.songsList objectAtIndex:currRow] valueForKey:@"SongName"]];

    [albumButton addTarget:self.delegateController action:@selector(songTypeSelAction:) forControlEvents:UIControlEventTouchUpInside];
    albumButton.tag = currRow;
}
if (value == 4) 
{
    genresLabel1.hidden = YES;
    genresLabel2.hidden = YES;
    genresButton.hidden = YES;

    artistLabel1.hidden = YES;
    artistLabel2.hidden = YES;
    artistButton.hidden = YES;

    albumLabel1.hidden = NO;
    albumLabel2.hidden = NO;
    albumButton.hidden = NO;

    songsLabel1.hidden = NO;
    songsLabel2.hidden = NO;
    songsButton.hidden = NO;

    [songsLabel1 setText:[[appDelegate.songsList objectAtIndex:currRow] valueForKey:@"SongName"]];
    [songsLabel2 setText:[[appDelegate.songsList objectAtIndex:currRow] valueForKey:@"AlbumName"]];
    [songsButton addTarget:self.delegateController action:@selector(songTypeSelAction:) forControlEvents:UIControlEventTouchUpInside];
    songsButton.tag = currRow;
}

}

这是我用于选择或行

的方法
-(void) songTypeSelAction :(id) sender
{
NSLog(@"songTypeSelAction");
UIButton *btn = (UIButton *) sender;
NSLog(@"songTypeSelAction bttn.tag: %d", btn.tag);
if ([self.delegateController respondsToSelector:@selector(songImageSelAction:)])
{

}
}

2 个答案:

答案 0 :(得分:2)

NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"SongName" ascending:TRUE];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"AlbumName" ascending:TRUE];
[appDelegate.songsList sortUsingDescriptors:[NSArray arrayWithObjects:sortDescriptor1,sortDescriptor2, nil]];

答案 1 :(得分:0)

如果你想要ti,那么你可以做到这一点。首先采取新观点....添加四个按钮和tableView。

比如下:编辑 - >嵌入 - >滚动型

比按钮的点击事件显示表格,不要忘记在显示时重新加载tableview数据。

如果有任何疑问,请问我。