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