繁体   English   中英

将UIButton放在UIView的顶部

[英]Place UIButton on the top of a UIView

我计划有一个视图控制器,一个表视图(3个部分)和3个按钮。 我不知道是否可以将按钮1放在表格视图和表格视图的顶部(正好在第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];

我认为这对你有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM