layoutMargins: UIEdgeInsets @available(iOS 11.0, *) open var directionalLayoutMargins: NSDirectionalEdgeInsets } public struct NSDirectionalEdgeInsets { public var top: CGFloat public var leading: CGFloat public var bottom: CGFloat public var trailing: CGFloat } public struct UIEdgeInsets { public var top: CGFloat public var left: CGFloat public var bottom: CGFloat public var right: CGFloat }
var readableWidthGuide: UILayoutGuide } open class UIStackView { open var isLayoutMarginsRelativeArrangement: Bool } open class UITableView { @available(iOS 9.0, *) open var cellLayoutMarginsFollowReadableWidth: Bool }
propagation all the way • Use readableWidth • Use systemSpacing for spacing between views: extension NSLayoutXAxisAnchor { open func constraint(equalToSystemSpacingAfter anchor: NSLayoutXAxisAnchor, multiplier: CGFloat) -> NSLayoutConstraint }