Позиционировать вид относительно другого вида, используя RMQ

Я начинаю сегодня использовать RMQ для моего проекта RubyMotion. Я прочитал документацию системы фрейма / сетки, но не могу найти способ позиционирования вида, связанного с другим видом.

У меня есть 4 кнопки с изображением внутри. Я хочу разместить UILabel под каждой кнопкой по центру.

Я не использую сетку, я помещаю свою кнопку с рамкой:

  def quiz_button(st)
    st.background_color = color.white
    st.frame = {l: 40, t: 160, w: 120, h: 120}
    st.image_normal = image.resource('sailboat')
    st.image_selected = image.resource('sailboat_selected')
  end

В MotionKit у меня есть "frame below(:username_input, down: 8)"поэтому я могу поместить представление под конкретное представление, в RMQ я не могу найти то, что поможет мне сделать то же самое.

1 ответ

Решение

Если они в порядке (имеется в виду братья и сестры друг друга и один за другим), вы можете использовать below_prev: 8, выше_prev, right_of_prev и т. д. (bp:, ap:, rop: для сокращений).

Чтобы получить конкретное представление, вы можете использовать rmq обычным способом: rmq(:username_input).frame.bottom), .frame возвращает экземпляр RubyMotionQuery::Rect, который имеет множество свойств, таких как bottom и right.

Так:

st.frame = {l: 40, bp: 8, w: 120, h: 120}

Или же

st.frame = {l: 40, t: rmq(:username_input).frame.bottom + 8, w: 120, h: 120}
Другие вопросы по тегам