Является ли создание большого количества UIViews в UIViewController хорошей практикой для раскадровок? Влияет ли это на приложение как память? - PullRequest
1 голос
/ 06 февраля 2020

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

Давайте рассмотрим одну страницу, содержащую изображение, метку и кнопку, теперь из раскадровки, как следует

1] наш один UIViewController делится на три части т. е. 3 UIViews для 3 компонентов, таких как один UIView для изображения
2], для обеспечения адаптивности изображения выберите другой UIView и сохраните в нем imageView, а затем установите ограничения и сохраните размеры и соотношение сторон изображения imageView.
3 ] Я дал разные цвета для разных UIViews для понимания окончательной иерархии, как показано ниже

enter image description here

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

Наконец, перейдем к вопросам
1], правильн ли этот подход?
2] Есть ли какое-либо влияние этого большого количества представлений UIView на приложение с точки зрения памяти и производительности?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

Я много раз пробовал этот метод, и я понимаю, что этот подход решает множество проблем с установлением ограничений. Этот подход похож на Bootstrsp. Мы собираемся разделить экран отверстий по UIViews и, наконец, добавим в него наши основные виды дизайна. До сих пор я не знаю, что плохого влияния этого подхода в приложении с точки зрения памяти и скорости. Это я объясню в будущем.

Большое спасибо.

0 голосов
/ 06 февраля 2020

Ответ на первый вопрос:

Подход, как обрабатывать много просмотров? Нет, это не правильно. Если у вас было много представлений в scrollView, используйте UITableView или UICollectionView из-за лучшей обработки, повторного использования и компоновки - функций, предоставляемых UIKit бесплатно. Если у вас много просмотров на одном экране без прокрутки - попробуйте использовать UIStackView - он предоставит вам множество автоматических c макетов и очень простое редактирование и обновление макетов вместо использования масок автоматического размещения / макетов. UIStackView можно рассматривать как генераторную машину AutoLayout.

Ответ на второй вопрос:

Нет. Использование больших раскадровок не оказывает гораздо большего влияния на память и производительность, чем генерация его с помощью кода.

Существует две основные проблемы с раскадровками:

1) Большие раскадровки имеют влияние производительности на XCode. Особенно со старыми компьютерами Mac.

2) Если два или более человека работают одновременно в одной раскадровке, вам следует помнить, что нельзя редактировать один и тот же ViewController вместе или создавать новый, в противном случае у вас возникнут конфликты в хранилище (такие же, как 2 человека редактируют один и тот же кусок кода одновременно), но вы должны разрешить его в xml, что читается, но для понимания требуется некоторое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...