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 вы используете?

Некоторые шаги отладки:

  1. Закомментируйте все внутри вашего MyCell и посмотреть, если он показывает название.
  2. Если так, то вы делаете что-то не так с MotionLayout.
  3. Если это все еще не работает, то это ошибка PM, и вы можете подать проблему.

Я чувствую, что ваша проблема связана с MotionLayout, а не с ProMotion.

Другие вопросы по тегам