我正在使用 RubyMotion 和 ProMotion 构建一个带有自定义单元格的 tableView。我无法弄清楚为什么没有一个细胞是可见的。当我不尝试使用自定义单元类时,标题标签是可见的。我在这里想念什么?谢谢!这是我的代码:
桌面屏幕
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)。细胞保持不变。这意味着我的单元设计对单元的设计没有影响。我是否可能未能以正确的方式声明单元类?谢谢!