Я взглянул на проект, и проблема, которую я видел в двух местах, заключалась в том, что автоматическая компоновка и ручные преобразования кадров используются, что может быть сложно. Пара конкретных вещей, которые я видел, вам, вероятно, потребуется изменить, чтобы представление могло быть правильно адаптировано и правильно отображено при разных размерах/ориентациях:
1) Представление CustomAudioLearn загружает представление из xib и добавляет его как подпункт , Тем не менее, он не устанавливает ограничений для этого подвью, чтобы убедиться, что subview всегда обнимает края родительского представления. Поэтому изменение размера представления CustomAudioLearn с помощью автоматического макета в результатах раскадровки приводит к тому, что subview на основе xib всегда остается того же размера. Вы должны либо добавить ограничения в subview, либо переопределить layoutSubviews()
в CustomAudioLearn и включить self.customView.frame = self.bounds
и self.customViw.layoutIfNeeded()
. Кроме того, я хотел бы предложить удаление линии self.customView.translatesAutoresizingMaskIntoConstraints = false
2) Точно так же, RecordButtonView
не устанавливает его радиус закругления на awakeFromNib()
, но после того, как макет бывает, что больше не правильный радиус. Поэтому вам следует снова рассмотреть переопределение layoutSubviews()
или подобное местоположение для корректировки радиуса при каждом обновлении макета.
3) Наконец, надпись RecordButtonView в раскадровке установлена на ограничение высоты 70 с приоритетом 1000. Если вы хотите, чтобы RecordButtonView расширялся для доступного пространства, вам следует уменьшить приоритет этой высоты чтобы пропорциональная ширина RecrodButtonView и соотношение сторон 1: 1 имели приоритет при определении высоты супервизора. В противном случае это будет всегда 70 пунктов, или будут конфликтующие ограничения.
Опубликовать ваше ограничение и проблему image –
Не получите вашу проблему в точности. предоставить более подробную информацию. – Lion
Обеспечьте также оснастку стороны инспектора. –