我正在使用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)。牢房保持不变。这意味着我的细胞设计对细胞的设计没有影响。我可能没有以正确的方式声明细胞类吗?谢谢!
答案 0 :(得分:1)
您似乎正确地执行了ProMotion部分。您使用的是什么版本的PM?
一些调试步骤:
MyCell
内的所有内容,看看它是否显示标题。我觉得你的问题出在MotionLayout上,而不是ProMotion。