У нас есть приложение для iphone, и сейчас мы его разрабатываем как универсальное. Мы хотим использовать те же представления, включая представления таблиц. С левой стороны мы используем табличное представление для навигации, которое можно расширять динамически, а с правой стороны у нас есть наши viewControllers, которые в основном такие же, как для iPhone.
Из-за дизайна и UX мы не хотим растягивать их, чтобы заполнить весь вид справа, мы хотим, чтобы они были центрированы с отступом слева и справа. Это заполнение должно быть динамическим, потому что, если меню слева расширяется, заполнение должно быть уменьшено.
Мы пытались добиться путем перезаписи метода ячеек setframe, но это немного неудобно, пробовали кто-нибудь из вас раньше что-то в этом роде?
ТИА
1 ответ
Внутри верхнего уровня UIView
моего UIViewController
я бы создал представление заполнения. Сделайте так, чтобы он прошел на всю ширину superview
, при необходимости увеличьте / уменьшите его и прикрепите к левой и правой сторонам.
Внутри представления заполнения создайте представление содержимого. Сделайте вид настолько широким, насколько хотите, не меняйте его размер по горизонтали и не прикрепляйте его к левой или правой сторонам. Прикрепите его в центре поля зрения.
Теперь, если вы скажете ... сдвиньте представление заполнения вправо и уменьшите его, изменив origin.x и size.width в кадре, внутреннее представление содержимого останется фиксированным по размеру и центрированным в представлении заполнения. Это также позволит вам перемещать меню в левой или правой части экрана.
Изменить на основе комментария: Если ваше внутреннее представление содержимого представляет собой таблицу, но вам нужна полоса прокрутки справа.
Измените frame.size.height
внутреннего представления содержимого (UITableView
, чтобы оно соответствовало значению contentSize.height
табличного представления. Это сделает таблицу такого же размера, как и содержимое. Отключите вертикальную прокрутку. (Примечание: вы вам придется обновлять высоту представления таблицы каждый раз, когда вы изменяете высоту содержимого.)
Вместо того, чтобы использовать для заполнения простой UIView
, сделайте его UIScrollView
.
Теперь ваше представление таблицы имеет статическую высоту и не прокручивается, нет полосы прокрутки. Представление заполнения теперь управляет прокруткой, что означает, что вы можете прокручивать, касаясь заполнения, а также располагая полосой прокрутки на правом краю представления заполнения.
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.