我计划有一个视图控制器、一个表格视图(3 个部分)和 3 个按钮。我不知道我是否可以将按钮 1 放在 table view 和 table view 的顶部(正好在第 1 部分的顶部),按钮 2 在第 2 部分的顶部,按钮 3 在第 3 部分的顶部.
而且我还希望当人们向下滚动时,按钮 1 仍然在顶部,直到它遇到按钮 2 -> 按钮 2 将在顶部,当它遇到按钮 3 时,按钮 3 将在顶部。
你能帮我做我想做的事吗?
我计划有一个视图控制器、一个表格视图(3 个部分)和 3 个按钮。我不知道我是否可以将按钮 1 放在 table view 和 table view 的顶部(正好在第 1 部分的顶部),按钮 2 在第 2 部分的顶部,按钮 3 在第 3 部分的顶部.
而且我还希望当人们向下滚动时,按钮 1 仍然在顶部,直到它遇到按钮 2 -> 按钮 2 将在顶部,当它遇到按钮 3 时,按钮 3 将在顶部。
你能帮我做我想做的事吗?
这是一个可能适合您的示例。在你的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;
}
使用 bringSubviewToFront: 方法并在 viewDidLoad 方法中编写以下代码。
[self.view bringSubviewToFront:yourButton];
我想这会对你有所帮助。