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

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

示例代码为

这是用于将按钮添加到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:)])
{

}
}

最佳答案

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

10-07 19:54