Custom ProMotion TableCell не отображается
Я строю tableView с пользовательскими ячейками, используя RubyMotion и ProMotion. Я не могу понять, почему ни одна из клеток не видна. Когда я не пытаюсь использовать пользовательский класс ячейки, метка заголовка видна. Что мне здесь не хватает? Спасибо! Вот мой код:
Экран стола
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
метод (вызов супер и возвращение себя внутри него остались). Камера осталась прежней. Это означает, что дизайн моей ячейки не влияет на дизайн ячейки. Может быть, мне не удалось объявить класс ячейки правильным образом? Спасибо!
1 ответ
Похоже, что вы делаете часть ProMotion правильно. Какую версию PM вы используете?
Некоторые шаги отладки:
- Закомментируйте все внутри вашего
MyCell
и посмотреть, если он показывает название. - Если так, то вы делаете что-то не так с MotionLayout.
- Если это все еще не работает, то это ошибка PM, и вы можете подать проблему.
Я чувствую, что ваша проблема связана с MotionLayout, а не с ProMotion.