0

ビューコントローラー、テーブルビュー(3つのセクション)、3つのボタンを用意する予定です。ボタン1をテーブルビューとテーブルビューの上部(正確にはセクション1の上)に配置できるかどうかわかりません。ボタン2はセクション2の上にあり、ボタン3はセクション3の上にあります。 。

また、人々が下にスクロールしたときに、ボタン2に出会うまでボタン1が上になり、ボタン2が上になり、ボタン3に出会うと、ボタン3が上になります。

私がやりたいことをするのを手伝ってくれませんか。

4

2 に答える 2

2

これがあなたの目的のために働くかもしれない例です。に、これもあなたUITableViewControllerのはずですがUITableViewDelegate、次のコードを実装します。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIButton *button = nil;
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, HEADER_HEIGHT)];
    switch (section) {
        case 0:
            button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, BUTTON1_WIDTH, HEADER_HEIGHT)];
            [button addTarget:self action:@selector(SELECTOR1) forControlEvents:UIControlEventTouchUpInside];
            // do some more things
            break;
        case 1:
            button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, BUTTON2_WIDTH, HEADER_HEIGHT)];
            [button addTarget:self action:@selector(SELECTOR2) forControlEvents:UIControlEventTouchUpInside];
            // do some more things
            break;
        case 2:
            button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, BUTTON3_WIDTH, HEADER_HEIGHT)];
            [button addTarget:self action:@selector(SELECTOR3) forControlEvents:UIControlEventTouchUpInside];
            // do some more things
            break;
        default:
            // do default things
            break;
    }

    [headerView addSubview:button];
    return headerView;
}

そして、これを実装することを忘れないでください:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return HEADER_HEIGHT;
}
于 2013-03-02T16:07:35.623 に答える
0

bringSubviewToFront:メソッドを使用し、viewDidLoadメソッドに次のコードを記述します。

[self.view bringSubviewToFront:yourButton];

お役に立てればと思います。

于 2013-03-02T14:15:01.380 に答える