Мне нужно иметь табличное представление для iphone X с полями относительно руководства по компоновке safearea:
Вот результат, который я получаю: ставка на слишком большой разрыв.левый край и край моего табличного представления
Я попытался установить источник (x), например:
view.frame.width - view.safeAreaLayoutGuide.width
let x = view.safeAreaLayoutGuide.origin.x
введите описание изображения здесь
это мой код ниже:
var safeAreainsets: UIEdgeInsets {
if #available(iOS 11.0, *) {
guard let window = UIApplication.shared.keyWindow else { return UIEdgeInsets.zero }
return window.safeAreaInsets
}
return UIEdgeInsets.zero
}
var layoutFrame: CGRect {
let guide = view.safeAreaLayoutGuide
return guide.layoutFrame
}
var hasSafeArea: Bool {
return safeAreainsets.top > 0 || safeAreainsets.right > 0 || safeAreainsets.bottom > 0 || safeAreainsets.left > 0
}
//property to check if device is iPhoneX - not completely future proof though
fileprivate var isIphoneX: Bool {
if layoutFrame.width - view.frame.width != 0 { return true }
return false
}
fileprivate var tableViewFrame: CGRect {
//calculating margins value if applicable
let margins = shouldShowFlexibleHeader && isRegular && isLandscape ? (view.frame.width * 10) / 100 : 0
//setting tableView frame with following conditions
let x = view.frame.width - layoutFrame.width
if isIphoneX {
return CGRect(x: isLandscapeLeft ? x : 0, y: 0, width: view.frame.width, height: view.frame.height)
} else {
return CGRect(x: margins / 2, y: 0, width: view.frame.width - margins, height: view.frame.height)
}
}
как устранить этот пробел