0

我计划有一个视图控制器、一个表格视图(3 个部分)和 3 个按钮。我不知道我是否可以将按钮 1 放在 table view 和 table view 的顶部(正好在第 1 部分的顶部),按钮 2 在第 2 部分的顶部,按钮 3 在第 3 部分的顶部.

而且我还希望当人们向下滚动时,按钮 1 仍然在顶部,直到它遇到按钮 2 -> 按钮 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 回答