我正在研究可以進入任何應用程序的第三方庫。我的圖書館提供的功能取決於應用程序支持的方向。我想知道是否有任何可靠的,程序化的方式來檢索任何給定應用程序中支持的應用程序方向列表。這很重要,以便我可以根據支持的方向修改我的庫的可用功能。如何以編程方式確定支持的應用程序方向?
注:考慮到這是一個圖書館,我需要能夠諮詢一個可靠的這些信息。
我正在研究可以進入任何應用程序的第三方庫。我的圖書館提供的功能取決於應用程序支持的方向。我想知道是否有任何可靠的,程序化的方式來檢索任何給定應用程序中支持的應用程序方向列表。這很重要,以便我可以根據支持的方向修改我的庫的可用功能。如何以編程方式確定支持的應用程序方向?
注:考慮到這是一個圖書館,我需要能夠諮詢一個可靠的這些信息。
您可以閱讀的Info.plist與
[[NSBundle mainBundle] infoDictionary]
字典你可以很容易地得到在UISupportedInterfaceOrientations
密鑰的方式支撐取向。
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSArray* supportedOrientations = [infoDict objectForKey:@"UISupportedInterfaceOrientations"];
Info.plist如何支持UISupportedInterfaceOrientations?
看看UIApplicationDelegate
協議中的application:supportedInterfaceOrientationsForWindow:
。從你的評論中它應該滿足你的需求。如果應用程序不執行該方法,請回到Info.plist中的信息。
好點!測試表明從'application:supportedInterfaceOrientationsForWindow:'返回的值將覆蓋項目設置(Info.plist)中指定的值。 – Stunner
在雨燕3.0:
if let orientationArray = Bundle.main.infoDictionary?["UISupportedInterfaceOrientations"] as? [String] {
// Your Code here
}
最簡單的方法將是圖書館的用戶告訴你:) –
@大衛真的,我會選擇該選項作爲最後的手段。如果可以通過編程完成而不需要我的圖書館的用戶做更多的工作,那將是理想的。 – Stunner
問題是,以編程方式確定它涉及大量的條件案例。這並不像使用UISupportedInterfaceOrientations那麼簡單,因爲它只能建立應用程序可以在各種不同操作系統版本上以多種不同方式覆蓋的默認值。 –