【问题标题】:ProMotion Screen lagProMotion 屏幕延迟
【发布时间】:2015-01-31 19:29:00
【问题描述】:

我正在开发一个包含火车站列表的应用程序,当您从列表中选择一个车站时,应该有一个显示更多信息的视图。

对于我正在使用的列表PM::TableScreen

在那里,当用户选择一个电台时,我会调用这个方法:

def select_station(station)
  open StationScreen.alloc.initWithStation(station)
end

以及对应的StationScreen

class StationScreen < UIViewController

  def initWithStation(station)
    init.tap do
      @station = station
    end
  end

  def loadView
    self.title = @station[:name]
    @layout = StationLayout.new
    self.view = @layout.view
  end

end

这会产生以下内容:

点击后退按钮效果很流畅。

现在,我想切换到 ProMotion::Screen

StationScreen 变为:

class StationScreen < PM::Screen

  attr_accessor :station

  def on_load
    self.title = @station[:name]
    @layout = StationLayout.new
    self.view = @layout.view
  end

end

还有select_station方法:

def select_station(station)
  open StationScreen.new(station: station)
end

现在后面的动画很奇怪。请注意图像如何仍然显示一段时间,然后消失。

我做错了什么以及如何使用ProMotion::Screen 正确实施它?

更新 1: 这修复了它。 ProMotion 的例子是建议错误的事情。

def load_view
  self.title = @station[:name]
  @layout = StationLayout.new
  self.view = @layout.view
end

这是正确的做法吗?

【问题讨论】:

  • 很高兴你解决了这个问题,@egze。你是对的,你应该使用load_view 而不是on_load。你能指出错误的文档以便我修复它吗?
  • 你应该把你的修复作为答案。

标签: rubymotion rubymotion-promotion


【解决方案1】:

经过一些实验,我想通了。解决方法不止一种:

1) 使用on_load。这里的关键是告诉布局什么是根视图。然后它可以正确地计算出如何正确地做后面的动画。如果你不给它root,就像我在开始时所做的那样 - 后退动画可能会中断。 (至少我是这么理解的)。

def on_load
  @layout = StationLayout.new(root: self.view)
  @layout.build
end

2) 使用load_view。在这里,由于某种原因,它可以在不指定根视图的情况下正常工作。我猜当您将 self.view 分配给布局视图时它会自动发生。

def load_view
  @layout = StationLayout.new
  self.view = @layout.view
end

我最终使用了on_load

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2019-05-08
    • 2011-05-03
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多