iOS 狀態列的圖示

黑暗森林的歌者發表於2018-02-26

獲取狀態列上的 view 陣列

    UIApplication *app = [UIApplication sharedApplication];
    // 獲取狀態列
    UIView *statusView = [app valueForKey:@"statusBar"];
    NSArray *subViews = [[statusView valueForKey:@"foregroundView"] subviews];
複製程式碼

列印 subviews 就能看到狀態列上的圖示資料

    // 訊號強度
    "<UIStatusBarSignalStrengthItemView: 0x102112070; frame = (6 0; 35 20);     
userInteractionEnabled = NO; layer = <CALayer: 0x1702282a0>> [Item = <UIStatusBarItem: 0x170228260> [UIStatusBarSignalStrengthItemView (Left)]]",
    // 服務商
    "<UIStatusBarServiceItemView: 0x102112e50; frame = (44 0; 50 20); userInteractionEnabled = NO; layer = <CALayer: 0x170228440>> [Item = <UIStatusBarItem: 0x1702283a0> [UIStatusBarServiceItemView (Left)]]",
    // 網路狀態碼
    "<UIStatusBarDataNetworkItemView: 0x1021137c0; frame = (99 0; 13 20); userInteractionEnabled = NO; layer = <CALayer: 0x170228500>> [Item = <UIStatusBarItem: 0x1702284a0> [UIStatusBarDataNetworkItemView (Left)]]",
    // 電池標誌
    "<UIStatusBarBatteryItemView: 0x10220cac0; frame = (282 0; 33 20); userInteractionEnabled = NO; layer = <CALayer: 0x174229f80>> [Item = <UIStatusBarItem: 0x174229fe0> [UIStatusBarBatteryItemView (Right)]]",
    // 電池數字
    "<UIStatusBarBatteryPercentItemView: 0x10220f680; frame = (254 0; 25 20); userInteractionEnabled = NO; layer = <CALayer: 0x174229420>> [Item = <UIStatusBarItem: 0x17422a000> [UIStatusBarBatteryPercentItemView (Right)]]",
    // 鬧鐘
    "<UIStatusBarIndicatorItemView: 0x1021060a0; frame = (238 0; 10 20); userInteractionEnabled = NO; layer = <CALayer: 0x170228800>> [Item = <UIStatusBarItem: 0x174229fc0> [UIStatusBarIndicatorItemView:Alarm (Right)]]",
    // 時間
    "<UIStatusBarTimeItemView: 0x102114680; frame = (145 0; 35 20); userInteractionEnabled = NO; layer = <CALayer: 0x170228880>> [Item = <UIStatusBarItem: 0x170228280> [UIStatusBarTimeItemView (Center)]]"

複製程式碼

上面的是我的真機的列印結果,不同的狀態列可能結果不同,還有其他的顯示的圖示,如下:

    // back to app 
    "UIStatusBarBreadcrumbItemView"
    // 右上角的開啟 Safari
    "UIStatusBarOpenInSafariItemView"
    // 定位標誌
    "UIStatusBarLocationItemView"
複製程式碼

還有其餘的圖示,可能根據不同的需求來獲取##

相關文章