2015-05-18 1 views
2

Я пытаюсь создать электронную таблицу, такую ​​как приложение, которое имеет вид прокрутки и «плавающие» заголовки сверху и слева, которые не прокручиваются вместе с остальной частью содержимого. Я это реализовано в ScrollView с помощью layoutSubViews переопределить каркасы UIViews заголовка, со всеми прокруткой в ​​одном UIView:Соответствующие ширины для представлений Autolayout в отдельных иерархиях

  • ScrollView
    • Топ Заголовок UIVew
    • Левый Заголовок UIVew
    • Содержание UIView
      • Содержание

Это все работает отлично, за исключением случаев, когда элементы в заголовке должны совпадать с основным содержимым (например, «W: cell1 == topHeader1», «H: cell1 == leftHeader1» и т. Д.). Autolayout не допускает ограничений, поскольку элементы не находятся в одной иерархии. Как сохранить ширину/высоту одинаково?

+0

Взгляните сюда на «чистые» плавающие заголовки: http://stackoverflow.com/questions/19282074/fixed-float-view-in-uiscrollview-with-autolayout –

+0

Jakub, это был ключ к моей проблеме , Не стесняйтесь ответить на этот вопрос. :) – Geoff

+0

Я не думаю, что для ответа достаточно указать другой вопрос;) –

ответ

1

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

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

+0

UICollectionView выглядит более или менее полностью отключенным AutoLayout. В этом случае мне нужно было бы рассчитать высоту и ширину каждой ячейки, чтобы определить правильную высоту и ширину отображаемых ячеек, и я не вижу, как AutoLayout можно использовать для этого, поскольку эти ячейки могут или могут не создаваться в то время. Я уверен, что это возможно, но это слишком много для меня. :) – Geoff

Смежные вопросы