Как я могу программно получить высоту строки состояния в Swift?
В Objective-C это так:
[UIApplication sharedApplication].statusBarFrame.size.height.
Есть ли проблемы со Swift 2.x :
UIApplication.sharedApplication().statusBarFrame.size.height
Swift 3 или Swift 4 :
UIApplication.shared.statusBarFrame.height
Убедитесь, что UIKit
импортирован
import UIKit
В iOS 13 вы получите предупреждение об устаревании "
'statusBarFrame' устарел в iOS 13.0: вместо этого используйте свойство statusBarManager сцены окна.
Чтобы исправить это:
let height = view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0
UIApplication.shared.statusBarFrame.size.height
size
В Swift 3 можно опустить :UIApplication.shared.statusBarFrame.height
достаточно.view.window?
наUIApplication.shared.keyWindow?
Обновленный ответ, поддерживающий iOS 13+ и более ранние версии iOS для Swift 5
Удачного кодирования!
источник
Swift - это просто другой язык. Элементы API такие же. Возможно что-то вроде этого:
источник
Вот что я использую:
Тогда вы сможете:
источник
Это как в Objective-C:
Он включен как стандартная переменная в:
https://github.com/goktugyil/EZSwiftExtensions
источник
Переделанный ответ Ибрагима:
источник
В моем проекте swiftUI это сработало.
При использовании
источник