【问题标题】:SWRevealViewController pushing down front view controllerSWRevealViewController 下推前视图控制器
【发布时间】:2014-06-30 01:48:46
【问题描述】:

我目前正在将 SWRevealViewController 与 Storyboards 一起使用,并且我看到了一种直到最近才看到的行为。

最初,在我的一个前视图控制器中,我使用的是 UITableViewController,它运行良好。但是,我需要将其换掉并用带有 MKMapView 和 UITableView 的 UIViewController 替换它。我使用编辑器 > 嵌入 > 导航控制器将新视图控制器嵌入到导航控制器中,就像我之前使用 UITableViewController 所做的那样。

现在我发现当 第二 时间发生到新的前端控制器的转换时,内容被下推。

我在 ViewWillAppear 方法中添加了一些日志记录并看到以下内容(经过编辑以筛选出日志记录噪音...):

首次亮相

self.view - UIView: frame = (0 0; 320 568)
self.mapView - MKMapView: frame = (0 65; 320 128)
self.tableView - UITableView: frame = (0 193; 320 375)

第二次出场

self.view - UIView: frame = (0 64; 320 504)
self.mapView - MKMapView: frame = (0 65; 320 128)
self.tableView - UITableView: frame = (0 193; 320 375)

所以看起来子控件的 X 和 Y 坐标很好 - 它们在两种外观上都是相同的。但是,视图控制器的 self.view 第二次被推下。

关于为什么会发生这种情况以及我可以做些什么来解决它的任何想法?在 viewWillAppear 中公开将视图控制器的视图设置为 0,0 对我不起作用。

提前致谢。

更新 嗯......显然问题是真的:“为什么第一次视图的原点是 0,0?”

当我登录在 SWRevealViewController 的前视图中显示的其他视图控制器时,它们通常会在 0,64 处报告它们的起源。然而,第一次加载初始视图控制器并显示为 0,0...所以现在我想知道这是怎么回事。

【问题讨论】:

    标签: uiviewcontroller uinavigationcontroller swrevealviewcontroller


    【解决方案1】:

    在这个确切的问题上花费了几个小时后,我找到了解决方案。

    在您的初始导航控制器中,您必须将导航栏设置为半透明。您可以通过选中“半透明”复选框在情节提要中执行此操作,如图所示。

    如果需要,您仍然可以为导航栏应用颜色(条形色调)。

    【讨论】:

      【解决方案2】:

      好吧……好吧……我找到了解决办法。感觉很笨拙,但很管用。

      我删除了视图控制器中的根视图,并将其替换为 UIScrollView,然后将所有组成控件嵌入到滚动视图中。

      所以这告诉我在视图控制器链中的某个地方“自动调整滚动视图插入”可能已经在某个地方挡住了路?或者可能是一些 Auto Layout 的怪癖?

      如果有人有想法,我仍然愿意接受,因为 Scroll View hack 不太适合我,但我现在会接受...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-09
        • 2015-09-07
        • 1970-01-01
        • 2016-03-31
        • 2015-07-03
        • 2016-06-20
        • 2015-04-17
        • 2017-01-03
        相关资源
        最近更新 更多