0

私のアプリケーションでは、4 つのボタンで scrollView を使用しています。ボタンのいずれかをクリックすると、テーブルが動的に行ごとにデータとともに表示されます。

今私の問題は、それらを昇順に並べることです。

サンプルコードは

これはスクロールビューにボタンを追加するためのものですこれは1つのクラスにあります

        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

あなたが望むなら..あなたがこれを行うよりも..最初に新しいビューを取りなさい..4つのボタンとtableViewを追加してください。

これに従ってください: Editor -> Embed In -> ScrollView

ボタンのクリックイベントよりもテーブルを表示し、表示時にテーブルビューデータをリロードすることを忘れないでください。

質問がある場合は、私に尋ねてください。

于 2012-05-02T06:22:23.850 に答える