添加下一页 segue 后 WatchKit 界面控制器滚动太多

WatchKit Interface controller scrolls too much after adding next page segue

专家!

今天开始为我的CelebrateMore打造Apple Watch版本!应用程序,无法解决一个问题。我有 2 个界面控制器 - 基于页面的类型。一旦我将 segue 设置为 "next page" 从第一到第二,我的第一个界面控制器开始滚动得比以前多得多。

故事板截图:

滚动期间来自模拟器的屏幕截图:

如果我删除下一页转场和滚动,来自模拟器的屏幕截图:

从scrollbar已经可以看出,如果使用"next page"的话会有很多空内容。有谁知道如何解决这个问题,如何避免 "the long after content scrolling" 问题?

我已经为同一个问题苦苦挣扎了几个小时,直到我决定暂时放弃它并专注于在运行时用实际数据填充标签。在我向 WKInterfaceController ((void)awakeWithContext:(id)context {} and/or (void)willActivate {} 的主要初始化方法添加一些代码后,这个滚动问题神奇地消失了。尝试使用上述两种方法之一在代码中设置界面中一个或所有标签的文本,看看滚动问题是否得到解决:

[self.label setText:@"Some text.."];

它对我有效。

由于声誉低下,我无法投票:设置标签文本的解决方案对我也很有效。我先设置一个空文本,然后加载数据并在请求成功后再次更新标签。它可以正常工作并正确计算滚动视图的高度。

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    //enable correct scroll height
    self.titleLabel.setText("")

    self.loadData()
}

我使用了不同的方法来解决它。

先在InterfaceController中放一个group,并给它指定固定的高度,然后再把其他的组件放到这个group里面。

要让群组占满屏幕,38mm高度应设置为142点左右,42mm高度应设置为165点左右。您可以使用值旁边的加号为 2 个模型输入这些值。