Ограничение автоматической разметки для iPhone 8 и 8+ с использованием раскадровки - PullRequest
0 голосов
/ 30 ноября 2018

Как определить отдельные ограничения для iPhone 8 и 8 +?

Поскольку оба имеют разную ширину.Можно ли его дифференцировать с помощью раскадровки?

По сути, я хочу установить разные поля x и y для обоих телефонов.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Пользовательский класс ограничений IBDesignable & IBInspectable

import UIKit

@IBDesignable
class MyConstraint: NSLayoutConstraint {

  @IBInspectable
  var iPhone8: CGFloat = 0 {
    didSet {
      if UIScreen.main.bounds.maxY == 667 &&
         UIScreen.main.bounds.maxX == 375 {
        constant = iPhone8
      }
    }
  }

  @IBInspectable
  var iPhone8Plus: CGFloat = 0 {
    didSet {
      if UIScreen.main.bounds.maxX == 414 &&
         UIScreen.main.bounds.maxY == 736 {
        constant = iPhone8Plus
      }
    }
  }
}

Установить пользовательский класс ограничений

enter image description here

enter image description here

enter image description here

0 голосов
/ 01 декабря 2018

Нет, вы не можете разделить макет для iPhone 8 и 8+ на раскадровке. Потому что Autolayout основан на классе размера, и нет доступного класса размера, который разделяет iphone 8 и 8 +.

для получения дополнительной информации: https://medium.com/@craiggrummitt/size-classes-in-interface-builder-in-xcode-8-74f20a541195.

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