如何在 UINavigationBar 上显示 UIView

How to show a UIView on top of UINavigationBar

有没有人有任何优雅的解决方案来将 UIView 移动到 UINavigationBar 前面?

我希望发生以下情况:

1 - 单击绿色按钮

2 - 绿色按钮和蓝色视图向上滑动到 UINavigationBar

3 - 绿色按钮位于 UINavigationBar 顶部

这不是最优雅的解决方案,但我认为您需要将按钮从其当前视图层次结构中删除并将其添加到导航控制器视图中。

例如

- (void)buttonPress:(UIButton *)sender {

    [UIView animateWithDuration:0.3 animations:^{
        [sender removeFromSuperview];
        [self.navigationController.view addSubview:sender];
        [sender setFrame:CGRectMake(sender.frame.origin.x, self.navigationController.navigationBar.frame.origin.y, sender.frame.size.width, sender.frame.size.height)];
    }];

}