将 UIButton 放在 UIView 的顶部
Posted
技术标签:
【中文标题】将 UIButton 放在 UIView 的顶部【英文标题】:Place UIButton on the top of a UIView 【发布时间】:2013-03-02 14:00:13 【问题描述】:我计划有一个视图控制器、一个表格视图(3 个部分)和 3 个按钮。我不知道我是否可以将按钮 1 放在 table view 和 table view 的顶部(正好在第 1 部分的顶部),按钮 2 在第 2 部分的顶部,按钮 3 在第 3 部分的顶部.
而且我还希望当人们向下滚动时,按钮 1 仍然在顶部,直到它遇到按钮 2 -> 按钮 2 将在顶部,当它遇到按钮 3 时,按钮 3 将在顶部。
你能帮我做我想做的事吗?
【问题讨论】:
修复什么?我没有看到任何无法正常工作的代码。 我编辑了。提前谢谢你。 “在部分顶部”是什么意思?到目前为止,您尝试过什么? 是的,我试过了。我用按钮 1 替换了第 1 节的标题。但我只能替换按钮 1。我不能用按钮 2、3 替换第 2、3 节的标题。我想这样做是因为我想设置隐藏的 3 个部分默认情况下。当人们单击按钮时,将出现部分。提前谢谢你。 停止planing并尝试一些代码,当你遇到困难时回来寻求帮助 【参考方案1】:下面是一个可能对您有用的示例。在您的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;
【讨论】:
非常感谢。如果我遇到困难,我会尝试您的解决方案并回来。【参考方案2】:使用bringSubviewToFront: 方法并在viewDidLoad 方法中编写如下代码。
[self.view bringSubviewToFront:yourButton];
我认为这对你会有帮助。
【讨论】:
以上是关于将 UIButton 放在 UIView 的顶部的主要内容,如果未能解决你的问题,请参考以下文章
带有 UITapGestureRecognizer 的 UIView 顶部的 UIButton 不起作用
从包含 UIViewController 为 UIView 的 UIButton 分配回调