Название iPhone XR iOS 12 UITabBarItem накладывается на верхнюю часть картинки

У вас есть список IStep, поэтому в списке может быть более одного типа объектов Istep. поэтому лучше сделать это в цикле foreach.

foreach(IStepBuildDataSet buildDataSet in Steps.OfType<IStepBuildDataSet>())
{
    //do something here.

}

foreach(IStepBuildFile buildFile in Steps.OfType<IStepBuildFile>())
{
    //do something here.

}
0
задан Jin 12 March 2019 в 23:25
поделиться

1 ответ

Решение заключается в следующем:

extension UIDevice {
var modelName: String {
    var modelID = ""
    #if targetEnvironment(simulator)
    modelID = ProcessInfo.processInfo.environment["SIMULATOR_MODEL_IDENTIFIER"] ?? ""
    #else
        var systemInfo = utsname()
        uname(&systemInfo)
        let machineMirror = Mirror(reflecting: systemInfo.machine)
        modelID = machineMirror.children.reduce("") { identifier, element in
            guard let value = element.value as? Int8, value != 0 else { return identifier }
            return identifier + String(UnicodeScalar(UInt8(value)))
        }
    #endif

    return modelID
    }
}

Я использую параметр nativeScale и scale для обнаружения, если пользователь открывает функцию масштабирования дисплея.

 if UIScreen.main.nativeScale > UIScreen.main.scale, UIDevice.current.modelName == "iPhone11,8" {
   // "iPhone11,8" for iPhone XR
  // do nothing here

} else {
   // for other devices
    tabBarItem.titlePositionAdjustment.vertical = -10.0
}
0
ответ дан Jin 12 March 2019 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: