Ячейки стола для укладки ProMotion с чашкой

Я искал ответ Google на этот вопрос, но без радости. Что я хотел бы сделать, так это скомбинировать Teacup и ProMotion для столов. Общая таблица довольно проста. Просто добавьте это к хешу элемента данных в методе table_data.

stylename: :leg_cell

-а также-

Teacup::Stylesheet.new :main_screen do
  style :leg_cell,
    backgroundColor: UIColor.colorWithRed(238, green:238, blue:238, alpha: 1),
    textColor: UIColor.greenColor
  style UITableViewLabel,
    textColor: UIColor.greenColor
end

для таблицы стилей. Но... UITableViewLabel игнорируется и вот это:

введите здесь описание изображения

Symbiote говорит мне, что это UITableViewLabel, но я не вижу способа его стилизовать. Кроме того, Teacup предлагает следующее:

layout do
  # things here to add styled subviews

вещи, которые очень похожи на подвид, добавляющий рюшечки в ProMotion. Как (хорошо) они сосуществуют?

Любые подсказки о том, как сделать эту метку табличного представления зеленой? И, возможно, даже использовать TeaCup для добавления некоторых пользовательских UILabels?

Примечание. Я знаю, что зеленый цвет ужасен, но я использую его только для того, чтобы продемонстрировать, что у меня правильный стиль элемента. Я выберу что-нибудь повкуснее, как только добьюсь правильного стиля.

Спасибо!


person Steve Ross    schedule 18.11.2013    source источник


Ответы (1)


Я бы рекомендовал создать подкласс PM::TableViewCell (который является подклассом UITableViewCell) и применить к нему стиль Teacup.

class MyTableViewCell < PM::TableViewCell
  attr_accessor :mileage_label

  stylesheet :main_screen
  def layoutSubviews
    layout do
      # Subviews
      # Apply `self.mileage_label` to your UILabel here.
    end
    restyle! # May be necessary?
  end
end

class MyScreen < PM::TableScreen
  def table_data
    [{
      cells: [{
        cell_class: MyTableViewCell,
        title: "whatever",
        properties: {
          mileage_label: "My mileage label",
        }
      }]
    }]
  end
end
person Jamon Holmgren    schedule 19.11.2013
comment
Итак, в этом контексте, скажем, мой PM::TableViewCell имеет подвид UILabel с именем mileage_label. Как указать текст для mileage_label в моем хэше table_data? - person Steve Ross; 28.11.2013
comment
Обновлен мой пример кода, чтобы показать, как это сделать. Вы добавляете attr_accessor, а затем можете ссылаться на него в хэше table_data. - person Jamon Holmgren; 30.11.2013
comment
Я пытаюсь сделать что-то подобное, но получаю эту ошибку "In NavigationScreen#table_data, you should set :event_name, :today in a `properties:` hash. See TableScreen documentation.". Я использую event_name и today вместо milage_label, но в остальном это почти то же самое. - person Dan; 02.12.2015
comment
Кроме того, когда я пытаюсь добавить строку таблицы стилей, она не компилируется с этой ошибкой Terminating app due to uncaught exception 'NoMethodError', reason: 'undefined method `stylesheet' for EventCell:Class (NoMethodError). Это моя строка объявления класса: class EventCell < PM::TableViewCell. - person Dan; 02.12.2015
comment
@Dan - я обновил пример. Вы хотите использовать хэш properties сейчас в новых версиях ProMotion. Не уверен, что это за вторая ошибка - пожалуйста, сообщите о проблеме! - person Jamon Holmgren; 15.12.2015