快速滑出菜单而不滑动导航栏(以编程方式)

2024-01-04

几天来我一直在尝试制作左侧滑出菜单。我无法让任何库与我的应用程序配合使用,因此我求助于 raywenderlich 的教程:

http://www.raywenderlich.com/78568/create-slide-out-navigation-panel-swift http://www.raywenderlich.com/78568/create-slide-out-navigation-panel-swift

但是,它并没有完全达到我想要的效果。我的主要问题是,当我滑出菜单时,导航栏也会随之滑出。我需要我的导航栏保持在原来的位置,并且只移动其下方的内容。

我尝试了“self.view.bringSubviewToFront(navigationController.navigationBar)”但这不起作用。

这是我想要完成的任务的屏幕截图。

我当前的设置是使用ContainerViewController这是我的设置appDelegate'sdidFinishLaunchingWithOptions`:

window = UIWindow(frame: UIScreen.mainScreen().bounds)

    let containerViewController = ContainerViewController()

    window!.rootViewController = containerViewController
    window!.makeKeyAndVisible()

    return true

此 ContainerViewController 正在获取 2 个 childViewController。

CenterViewControllerController(我的内容)

CenterViewController 将正确设置 navigationController。

var centerNavigationController: NavigationController!
var centerViewController: CenterViewController!

In the ContainerViewController viewDidLoad:

  override func viewDidLoad() {
    super.viewDidLoad()

    centerViewController = UIStoryboard.centerViewController()
    centerViewController.delegate = self

    // wrap the centerViewController in a navigation controller, so we can push views to it
    // and display bar button items in the navigation bar
    centerNavigationController = NavigationController(rootViewController: LandingPageVC())
    view.addSubview(centerNavigationController.view)
    addChildViewController(centerNavigationController)

    centerNavigationController.didMoveToParentViewController(self)

    let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "handlePanGesture:")
    centerNavigationController.view.addGestureRecognizer(panGestureRecognizer)
  }

和 SidePanelViewController (我的菜单和有问题的菜单。)

var leftViewController: SidePanelViewController?

  func addLeftPanelViewController() {
    if (leftViewController == nil) {
        leftViewController = SidePanelViewController()

        addChildSidePanelController(leftViewController!)
    }
  }

  func addChildSidePanelController(sidePanelController: SidePanelViewController) {
    println("addChildSidePanelController")

    view.insertSubview(sidePanelController.view, atIndex: 0)

    addChildViewController(sidePanelController)
    sidePanelController.didMoveToParentViewController(self)
  }

The SidePanelViewController目前没有navigationController。我确实尝试添加它。但这并没有达到预期的结果。

根据评论,我需要做的是以某种方式使 ContainerViewController 成为具有 navigationController 的控制器,因此它的两个 childController 也应该具有该功能?但是我不知道如何在该级别添加 navigationController。

任何帮助将不胜感激! (我没有使用故事板)

我尝试过的库:

ENSwiftSideMenu(做了我想做的事。但花了 2 天试图让它工作,但没有结果)

布莱恩降临节 YouTube 教程

Dekatotoro 的 SlideMenuControllerSwift

wanaya/幻灯片菜单

Swift 中的 SWRevealViewController


我将使用嵌入导航控制器中的自定义容器控制器来执行此操作(以获取导航栏)。该控制器将有两个容器视图,左视图的宽度为屏幕宽度的 80%,右视图的宽度为全屏宽度;这些可以在故事板中设置。添加到容器控制器视图中的滑动手势识别器将允许您滑动打开和关闭菜单。下面的代码是容器视图控制器中打开和关闭菜单所需的全部代码。出口 leftCon 是左容器视图的左边缘与其父视图之间的约束,

class ViewController: UIViewController {

    @IBOutlet weak var leftCon: NSLayoutConstraint!
    @IBOutlet weak var leftContainer: UIView!


    @IBAction func closeMenu(sender: UISwipeGestureRecognizer) {
        leftCon.constant = -leftContainer.frame.size.width
        UIView.animateWithDuration(0.3){
            self.view.layoutIfNeeded()
        }
    }

    @IBAction func openMenu(sender: UISwipeGestureRecognizer) {
        leftCon.constant = 0
        UIView.animateWithDuration(0.3){
            self.view.layoutIfNeeded()
        }
    }

}

我有一个示例应用程序(http://jmp.sh/5QwhYov http://jmp.sh/5QwhYov)演示了控制器的设置,但没有说明如何根据菜单控制器中的选择更改主控制器中的内容。可以通过多种方式实现,如果您能给我更多关于您希望如何显示的详细信息,我可以解决这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速滑出菜单而不滑动导航栏(以编程方式) 的相关文章

  • UITableView 干扰状态栏

    我正在开发一个具有 UITableViewController 的应用程序 该应用程序显示值列表 如下所示 如何将表格向下移动 使其不会与状态栏冲突 看来我无法对这个场景施加任何限制 所以我不知所措 使用以下 3 个属性UIViewCont
  • ReferenceError:找不到变量:__gCrWeb

    我的网站上有 javascript 错误跟踪 最近 我开始在 iPhone IOS 7 和 8 上的 Chrome 版本 37 和 38 中收到以下错误 ReferenceError 找不到变量 gCrWeb 除了一些参考文献之外 我找不到
  • UIPinchGestureRecognizer在水平和垂直方向分别的缩放

    使用 UIPinchGestureRecognizer 时 分别检测 读取水平和垂直方向上的捏合比例的最佳方法是什么 我看到了这个帖子 UIPinchGestureRecognizer 不同 x 和 y 方向的缩放视图 https stac
  • Swift 中的协议与多态性

    我对面向对象编程相当陌生 我正在尝试了解协议 委托和多态性 我最近观看了一个培训视频 其中宣传当您有两个相似且具有相似方法实现的类时 协议是优雅地实现此目的的最佳解决方案 这就说得通了 然而 一些额外的研究让我发现了多态性 听起来这也是一种
  • 线程1:EXC_BAD_ACCESS(代码=1,地址=0xf1759018)

    所以我收到了这个错误 如下图 当我收到此错误时 正在检查我的核心数据库 并根据我收集的电池统计数据对结果进行平均 这一切工作正常 直到我休息了一下然后回来 将其插入并开始出现此错误 我有一个异常断点 但除了图像中的崩溃之外 它仍然没有向我显
  • iOS游戏大小问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我开发了一款 iOS 通用游戏 我想
  • reloadData 调用 numberOfSections、numberOfRows,而不是 cellForRowAtIndexPath

    首先 如果格式不正确 我很抱歉 这是第一次这样做 我已经使用 stackoverflow 来寻求帮助很长时间了 它非常有帮助 谢谢大家 但这是我第一次发布自己的问题 这个问题已经被问过很多次了 但是当我调用 myTable reloadTa
  • 在 SwiftUI 文档应用程序中,如何从函数内保存文档

    当前版本的 Xcode 版本 12 5 1 为 macOS 的基于文档的应用程序提供了一个模板 提供以下文档模型 struct MyDocument FileDocument var text String init text String
  • 在 Mac OS 10.14.2 上的 Python 3.7 中安装 JPype1 时出错

    我在系统中安装 JPype1 时遇到错误 我正在使用Python 3 7 JPype1 是 Jaydebeapi 的依赖项 pip install Jpype1 以下是错误消息 Collecting jpype1 Using cached
  • CSS/XHTML 菜单 - 在所有浏览器中工作 - IE6 帮助

    我发现这个菜单正是我想要的 它适用于所有现代浏览器和 IE 7 8 我需要找到一个修复程序才能在 IE6 中工作 任何帮助将不胜感激 http lab returnwt net htmlcss tabmenu http lab return
  • Health 处理多个步骤源的方式与 HealthKit 不同——swift

    我的 Swift iOS 应用程序与 HealthKit 连接 向用户显示他们当天到目前为止已经走了多少步 在大多数情况下 这是成功的 当步数的唯一来源是 iPhone 内置计步器功能记录的步数时 一切正常 并且我的应用程序显示的步数与健康
  • 跨平台 IAP

    我已在 iOS 和 Android 中集成了应用内购买 自动续订订阅 两者都工作正常 我对使用跨平台验证 IAP 有一定的疑问 例如 当多个用户登录一个应用程序时 某一特定应用程序的订阅如何运作 例如 如果用户 A 有标准套餐并且从应用程序
  • iOS - 当应用程序被终止时处理静默推送通知

    我目前在 iOS 中遇到推送通知问题 我的应用程序收到包含标识符的静默推送通知 然后 该标识符用于从创建本地通知的远程服务器获取数据 据我所知 如果用户强制退出应用程序 即通过双击主页按钮并滑动关闭应用程序 则静默推送通知不会传递到 App
  • 扩展功能截图未捕获 iPhone 和 iPad 中的同一区域

    我正在使用扩展函数来截取 uiview 的屏幕截图 问题是结果看起来非常不同 我希望无论使用 ipad 还是 iphone 照片看起来都一样 我手动输入约束 因此我希望图像是相同的 我想使用该函数转到视图控制器的原点或中心 高度为 200
  • 将 GestureRecogniser 附加到多个图像视图

    今天我在将相同的手势识别器附加到多个图像视图时遇到了一些奇怪的事情 它仅附加到最后一个视图 换句话说 它只能附加到一个视图 我必须创建多个手势识别器才能满足我的要求 以下是我所做的 我做的对吗 这是将识别器附加到多个图像视图的唯一方法吗 请
  • 使用 NSXMLParser 在 Swift 中解析分层 XML

    我确实在以我实际可以使用的形式获取分层 XML 值时遇到问题 因此我们将不胜感激 我对 Swift 和 IOS 开发还很陌生 所以说实话我并不完全理解解析器 但我希望在这之后我能理解 下面是我尝试解析的示例 XML 它来自肥皂网络服务 连接
  • Swift 中带有数组的 For-In 循环中迭代器元素的可变性

    我在 Swift 3 0 中有一些代码 就像这样尝试更新元素数组中的属性 for point in listOfPoints var pointInFrame Float Float point position x sensorIncom
  • 如何使 SwiftUI 列表行背景颜色扩展整个宽度,包括安全区域之外

    在 SwiftUI 中List 如何制作列表行背景 通过设置 listRowBackground 扩展视图的整个宽度 甚至在安全区域下方 例如 在宽屏 iPhone 例如 iPhone 12 Pro Max 上横向运行时 目前 该单元格在安
  • 为 CocoaPods 插件设置 Xcode

    我正在尝试设置终端 Xcode 以便正确工作Xcode CocoaPods 插件 https github com kattrali cocoapods xcode plugin 当我从插件运行集成 cocoapods 选项时 我收到一条消
  • eclipse.ui.menus 的名称过滤器

    我有一个菜单贡献 通过实现org eclipse ui menus扩展点 我想仅为特定文件扩展名 例如 pld 提供此菜单贡献 但我不知道如何使用 visibleWhen 来做到这一点 有任何想法吗 更新 到目前为止我的扩展点

随机推荐

  • 无法将 img 标签附加到 p 标签

    我是 JavaScript 的初学者 我正在尝试创建一个脚本 当页面的 文件输入 元素加载文件时会触发该脚本 该脚本基本上应该创建一个p元素 在其中插入一个img a innerText and a span 因此将所有这些附加到表单中 下
  • 数字 0 在二进制浮点数格式中是什么样子?

    浮点格式 IEEE 有 32 位 第 1 位用于符号 之后 8 位用于有偏差指数 最后 23 位用于尾数 在这个尾数中 第一个 1 始终是 1 始终隐藏 这引出了我的问题 数字 0 在这种格式中是什么样子的 因为如果指数为 0 则该数字将始
  • 查找文件无法索引的原因?

    如何查找文件在 Alfresco 中索引失败的原因 除了之前的回复 如果节点无法建立索引 您可以了解原因 使用 SOLR 管理页面和模式浏览器 例如参见这里 http localhost 8080 solr4 alfresco schema
  • 在一张图中对不同范围的数据使用多个scale_colour_gradient比例

    我对 R 很陌生 所以如果我的问题中有不清楚的地方 请耐心等待 我有一个data frame 蛋白质 有 5 列 即 1 蛋白质名称 2 蛋白质 FC 3 蛋白质 pval 4 mRNA FC 5 mRNA pval 和 6 频率 我正在尝
  • Bash 脚本不会匹配正则表达式

    我有以下 bash 脚本 应该生成输出 TEST bin bash test TEST THING OBJECT X if test a zA Z0 9 a zA Z0 9 A Z s then echo BASH REMATCH 1 fi
  • Visual Studio 9.0 Beta 程序文件位于 C:\

    我在 C 根目录中有几个 Visual Studio 9 0 Beta 程序文件 eula 1028 txt eula 1031 txt eula 1033 txt eula 1036 txt eula 1040 txt eula 1041
  • 在 fullCalendar 上使用 clientEvents 方法过滤事件

    我有一个完整的日历正在运行 现在我想使用客户事件 http fullcalendar io docs event data clientEvents 过滤事件的方法如下 selecter provider somevalue events
  • 使用 HTTP 基本身份验证的 python Flask REST API 的安全性

    我的服务器上运行着 python Flask 公开了一个由 iOS 应用程序使用的 REST API 我正在使用 Flask HTTPAuth 模块进行 HTTP 基本身份验证 我想知道这有多安全 因为每个请求都会发送用户名 密码字符串 我
  • 大型backbone.js Web应用程序组织

    我目前正在开发一个基于backbone js 的大型网络应用程序 并且在组织 僵尸 等方面遇到了很多问题 因此我决定对代码进行重大重构 我已经编写了一堆辅助函数来处理 僵尸 但是 我想从头开始 为代码创建一个很好的结构 组织 我还没有找到很
  • 制作多列的表格视图

    我正在尝试创建这样的东西 其中每一行代表一个工作集 并包含重量和重复次数 用户可以通过按按钮添加新行 但我还没弄清楚如何在 tableView 中做到这一点 这就是我希望它看起来像这样 有什么建议 想法吗 有多种方法可以做到这一点 我将这样
  • 在 Ruby 中解析 JSON 字符串

    我有一个要在 Ruby 中解析的字符串 string desc someKey someValue anotherKey value main item stats a 8 b 12 c 10 有没有简单的方法来提取数据 这看起来像Java
  • 签名的 apk 中出现 ClassNotFoundException

    如果我在 Android 设备上安装并运行签名的 APK 则会收到此错误 如果我只是编译应用程序并直接在设备上运行 则不会出现此错误 似乎缺少的片段是在我的项目代码中 而不是在任何外部库中 我该如何调查该错误 我尝试重建 清理项目等 如果在
  • Java 泛型与 ArrayList 添加元素

    我有课A B C and D where B延伸A C延伸A and D延伸A 我有以下内容ArrayList每个都有一些元素 ArrayList b b ArrayList b
  • .NET Core 工具:导入项目时的 MSB3644

    我制作了一个基于 docker 容器microsoft dotnet 1 0 sdk 按照指南 我执行了dotnet new console并得到一个文件dotnet csproj dotnet restore and dotnet run
  • C++ 中的“<<”运算符是什么? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我无法理解以下代码中运算符 long
  • 从备份 SQL Server Express 创建/恢复数据库

    我的计算机上没有 SQL Server Management Studio 我有一个数据库备份 SQL Server 2008 R2 我的计算机上安装了与 Visual Studio 2010 Ultimate 一起安装的 SQL Serv
  • Keras 中的仅偏置层

    如何在 Keras 中构建一个层 将输入 x 映射到 x b 形式的输出 其中 b 是相同维度的可训练权重 这里的激活函数也是恒等式 您始终可以通过扩展来构建自定义层tf keras layers Layer类 这就是我要做的 import
  • 如何在android中每x分钟运行一个异步任务?

    如何在特定时间运行异步任务 我想每2分钟运行一次 我尝试使用延迟发布但不起作用 tvData postDelayed new Runnable Override public void run readWebpage 100 在上面的代码中
  • SQL中如何删除重复记录

    如何删除sql中的重复记录 In SQL Server 2005以上 WITH q AS SELECT ROW NUMBER OVER PARTITION BY dup column ORDER BY dup column AS rn FR
  • 快速滑出菜单而不滑动导航栏(以编程方式)

    几天来我一直在尝试制作左侧滑出菜单 我无法让任何库与我的应用程序配合使用 因此我求助于 raywenderlich 的教程 http www raywenderlich com 78568 create slide out navigati