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
次に、メソッド(スーパーへの呼び出しとその内部の自己の戻り)が残っていない限り、セルクラスからすべてを削除しました。セルはそのままでした。これは、私のセルの設計がセルの設計に影響を与えないことを意味します。セルクラスを正しい方法で宣言できなかったのでしょうか? ありがとう!