IOS AutoLayout - не в силах иметь высотуIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 IOS AutoLayout - не в силах иметь высоту

Сообщение Anonymous »

Я использую Snapkit для автоматического макета в моем приложении для iOS. У него будет изображение динамической высоты и ширины. Мне нужен его верхний край, чтобы быть выровненным с верхней частью вида. Мне нужно, чтобы это было горизонтально центрировано. Мне нужно, чтобы он имел левый и правый край от экрана большего или равного 10. Мне нужно, чтобы его высота была динамической на основе содержания с максимальной высотой, равной 300. Мне нужно, чтобы он поддерживал его соотношение и уменьшить его Ширина или высота по мере необходимости автоматически с помощью автоматического макета. < /p>
Я думал, что приведенный ниже код должен выполнять работу: < /p>

Код: Выделить всё

let padding = 10.0
let preview = UIImageView()

preview.setContentHuggingPriority(.required, for: .vertical)
preview.setContentHuggingPriority(.required, for: .horizontal)

preview.backgroundColor = .red
preview.contentMode = .scaleAspectFit
let image = UIImage(named: "demo3")!
preview.image = image

preview.clipsToBounds = true
view.addSubview(preview)
preview.snp.makeConstraints { make in
make.top.equalTo(view.safeAreaLayoutGuide.snp.top)
make.centerX.equalToSuperview()
make.left.right.greaterThanOrEqualToSuperview().inset(padding).priority(.required)
make.height.lessThanOrEqualTo(300).priority(.required)
make.width.equalTo(preview.snp.height).multipliedBy(image.size.width / image.size.height).priority(.required)
}
< /code>
Это, кажется, хорошо работает для ландшафтных изображений (ширина длиннее высоты), но он разбивается на портретных изображениях: < /p>



работает на ландшафтных изображениях: < /p>
 < /p>




/> 

Не удается на портретных изображениях. Обратите внимание, как высота больше не является меньшим, что нетто, (300) 
:
< /p>
Это связано с тем, что xcode печатает предупреждение о том, что оно не может удовлетворить ограничения, и это должно было сломать ограничение высоты: < /p>
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"",
"= UIView:0x7f81b183dc30.right - 12.0>",
"

Подробнее здесь: https://stackoverflow.com/questions/794 ... norequalto
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • IOS AutoLayout - не в силах иметь высоту
    Anonymous » » в форуме IOS
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Swift AutoLayout — PKCanvasView contentSize
    Anonymous » » в форуме IOS
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Использование вида прокрутки с Autolayout Swift
    Anonymous » » в форуме IOS
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как работает Scrollview с Autolayout, и почему установление нижнего вертикального ограничения пространства заставляет ег
    Anonymous » » в форуме IOS
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как мы можем иметь детский элемент заполнить высоту своего родителя, если не использовать фиксированную высоту, а подгот
    Anonymous » » в форуме CSS
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»