Как выполнить необязательное дочернее представление?

У меня есть представление с двумя дочерними представлениями, и я хочу, чтобы второе представление необязательно исчезало, отключалось, включая привязку данных, и изменяло размер первого представления и наоборот. Мне нужны подсказки или (псевдо) код, как это сделать. Спасибо заранее.


person fpk    schedule 24.04.2017    source источник
comment
Добро пожаловать в Stack Overflow! Пожалуйста, пройдите экскурсию, осмотритесь и прочитайте справочный центр, в частности о Как задать вопрос и Как создать минимальный, полный и проверяемый пример на этом сайте. Приложите усилия, чтобы решить проблему. Если при этом вы столкнетесь с определенной проблемой, опубликуйте вопрос с вашей попыткой (включая весь соответствующий код), расскажите, что не работает, и объясните свои исследования на данный момент.   -  person Teocci    schedule 24.04.2017


Ответы (1)


В SproutCore довольно много представлений, которые так или иначе делают это. Хотя это не лучший пример, взгляните на экспериментальный режим поиска.

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

person mauritslamers    schedule 24.04.2017
comment
Спасибо, но у меня не получается изображение. Мои дочерние представления содержат много данных и расположены вертикально, и у обоих запрос занимает много времени, я хочу, в зависимости от выбора пользователя, отключить/удалить второе представление. Я просмотрел autoresize, flowedlayout, invisibleBinding, isEnabled и т. д. и т. д., и когда второе представление не включено, оно больше не отображается, но полученное пространство не заполняется, другими словами, размер первого представления не изменяется. - person fpk; 24.04.2017
comment
Есть еще один способ сделать это, который состоит в построении для просмотра классов, где у одного есть второе представление, а у другого нет. Затем вы можете решить, какой класс представления использовать, основываясь на предпочтениях пользователей, например, сохраненных с использованием пользовательских значений по умолчанию: docs.sproutcore.com/#doc=SC.UserDefaults&src=false Этот подход предполагает, что вы не будете переключаться. Если вы действительно не переключаетесь, у вас не будет проблемы с удвоением привязок, поскольку привязки активируются только при создании экземпляра представления. - person mauritslamers; 24.04.2017
comment
Спасибо за совет. Я думал о применении параметра макета .adjust, но создание двух представлений (одно со вторым представлением и одно без него) также является вариантом. В любом случае у пользователя уже есть панель настроек, и это будет дополнительная опция. Что касается запроса кода, я попытаюсь сначала научиться сам, в любом случае, большое спасибо. - person fpk; 25.04.2017