自定义ProMotion TableCell未显示

时间:2014-06-08 11:54:05

标签: ios ruby uitableview rubymotion rubymotion-promotion

我正在使用RubyMotion和ProMotion构建一个包含自定义单元格的tableView。我无法弄清楚为什么没有细胞是可见的。当我不尝试使用自定义单元格类时,标题标签是可见的。我在这里错过了什么?谢谢!这是我的代码:

TableScreen

class HomeScreen < PM::TableScreen
  title 'Overview'

  def on_load
    @welcome_label = UILabel.new
    @welcome_label.text = 'Welcome to PushUp'
  end

  def table_data
    data1 = [1, 2, 3]
    data = [{ number: 1, date: '1.2.2014' }, { number: 5, date: '2.2.2014' }]

    [{
        title: 'PushUps',
        cells:
                   data.map do |e|
                     { cell_class: MyCell, title: e[:anzahl].to_s, date: e[:datum] }
                   end
     }]
  end
end

自定义单元格:

class MyCell < PM::TableViewCell
  attr_accessor :title, :detail

  def layoutSubviews
    @title = newTitleLabel
    @detail = newDetailLabel
    addLabelsToSubview
  end

  def addLabelsToSubview
    Motion::Layout.new do |layout|
      layout.view self.contentView
      layout.subviews "title" => title, "detail" => detail
      layout.vertical "|[title]|"
      layout.vertical "|[detail]|"
      layout.horizontal "|-[title]-10-[detail]-|"
    end
  end

  def newTitleLabel
    label = UILabel.alloc.init
    label.font = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline)
    label
  end

  def newDetailLabel
    label = UILabel.alloc.init
    label.font = UIFont.preferredFontForTextStyle(UIFontTextStyleFootnote)
    label
  end
end

更新

真的很奇怪,今天早上我耙了一下,电池显示了2个标签。它们都位于左侧,我认为它是某种标准的iOS单元设计,因此它不是由我创建的。但他们有我给他们的价值观。

然后我删除了单元格类中的所有内容,除非initWithStyle方法(调用super并在其中返回self)。牢房保持不变。这意味着我的细胞设计对细胞的设计没有影响。我可能没有以正确的方式声明细胞类吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您似乎正确地执行了ProMotion部分。您使用的是什么版本的PM?

一些调试步骤:

  1. 评论MyCell内的所有内容,看看它是否显示标题。
  2. 如果是这样,那么你对MotionLayout做错了。
  3. 如果它仍然不起作用,那么它就是PM错误,你可以提出问题。
  4. 我觉得你的问题出在MotionLayout上,而不是ProMotion。