Как удалить вид из супервизора без перезагрузки?

У меня есть игра, и я хочу удалить препятствие. Но когда я это делаю, вид полностью обновляется. Но я хочу, чтобы другие подвиды оставались там, где они есть.

Чтобы удалить это подвид, я использую:

obstacles.removeFromSuperview()

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

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

Кстати, когда я добавил свое представление в подвид, это было разрешено. не знаю важно ли это..


person Sam    schedule 28.02.2016    source источник


Ответы (1)


Если другие подпредставления перемещаются, это означает, что их положение зависит от удаленного вами представления. При работе с автоматическим расположением учитывайте, что removeFromSuperview удаляет любые ограничения, относящиеся к удаляемому представлению (или к его дочерним элементам).

person DAN    schedule 28.02.2016
comment
Ага. и как я мог решить эту проблему? поместив мой movingView в другое место перед удалением другого ?? - person Sam; 28.02.2016
comment
если вы работаете с автоматическим макетом, вы можете создать ограничения с более низким приоритетом между оставшимися представлениями и другими элементами вашего контроллера представления (а не представлением, которое вы удаляете), чтобы они становились активными при удалении представления и ограничивали оставшиеся представления до желаемая должность - person DAN; 28.02.2016
comment
спасибо за все ваши усилия, но я просто спрячу его до конца и удалю из своего словаря, поэтому я не буду его трогать.. и, наконец, при выходе из ВК он удаляется.. еще раз: ОГРОМНОЕ спасибо!! - person Sam; 29.02.2016