2016-04-30 2 views
0

У меня есть UIView buttonView и дает ему ограничение равных высот супер UIView с множителем 0,4. Кадр настроен правильно, но подпункты buttonView не видны. Однако, когда я нажимаю на позицию, где должны быть кнопки, то срабатывает действие. Этого не происходит, когда я изменяю ограничение buttonViews как фиксированную высоту. Я могу получить больше деталей, если вы хотите, но кто-нибудь сталкивается с чем-то похожим?AutoLayout Equal Heights скрывает Subviews

EDIT

That's the custom viewCustom View in simulator

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

+1

Опубликовать ваше ограничение и проблему image –

+0

Не получите вашу проблему в точности. предоставить более подробную информацию. – Lion

+0

Обеспечьте также оснастку стороны инспектора. –

ответ

0

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

3

Я взглянул на проект, и проблема, которую я видел в двух местах, заключалась в том, что автоматическая компоновка и ручные преобразования кадров используются, что может быть сложно. Пара конкретных вещей, которые я видел, вам, вероятно, потребуется изменить, чтобы представление могло быть правильно адаптировано и правильно отображено при разных размерах/ориентациях:

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 пунктов, или будут конфликтующие ограничения.

Смежные вопросы