0

在我的应用程序中,我使用带有 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:)])
{

}
}
4

2 回答 2

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]];
于 2012-05-02T06:22:18.433 回答
0

如果你想要更可取..比你可以这样做..首先获取新视图....添加四个按钮和 tableView。

比这个:编辑器->嵌入->滚动视图

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

如果有任何疑问问我。

于 2012-05-02T06:22:23.850 回答