Сегментированный элемент управления и прокрутка, сохранение представлений в памяти

#ios #swift #cocoa-touch #uiscrollview #uisegmentedcontrol

#iOS #swift #cocoa-touch #uiscrollview #uisegmentedcontrol

Вопрос:

То, чего я пытаюсь достичь, — это, по сути, экран типа Instagram profile.

Я пытаюсь воссоздать раздел сегментированного управления и то, что находится под ним.

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

Я видел много способов реализации этого, с видом прокрутки или без него (тот, который я на самом деле не фанат, — это метод .ishidden).

Моя главная проблема — память. Я не знаю, лучше ли хранить их в памяти или загружать с нуля, а также как это сделать. Можете ли вы указать мне правильное направление?

Ответ №1:

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

Вы определенно хотите загрузить свои представления, назначить их strong свойствам, а затем поменять их местами.

Добавьте пользовательский вид в Interface Builder, который будет вашим контейнером, а затем подключите его к IBOutlet в вашем контроллере. Вы можете создавать свои виды прокрутки при создании экземпляра контроллера, а затем вы можете добавить вид прокрутки в качестве подвида в контейнер. Затем, когда нажат сегментированный элемент управления, вы можете удалить этот вложенный вид и заменить его новым выбранным вложенным видом.

Instagram, возможно, будет иметь одни из самых больших просмотров с точки зрения распределения памяти, которые можно поменять местами (несколько изображений). Тем не менее, вы можете сказать, что просмотры прокрутки хранятся в памяти, потому что вы можете переключаться между ними без перезагрузки изображений