キャッシュされた色を保存するplistファイルがあります。次のようになります
<key>CachedColors</key>
<dict>
<key>com.Halfbrick.Fruit</key>
<string>0.00000,0.00000,0.00000</string>
<key>com.apple.Preferences</key>
<string>0.28824,0.37059,0.48235</string>
</dict>
私がやりたいことは、3 つの値を使用して UIColor を作成することです。UIColor はバンドル ID に応じて変化します。値は赤、緑、青です。
しかし、バンドル ID が変更された場合に UIColor が自動的に変更されるようにしたいと思います。バナーの背景色として使用しています。ホーム画面で通知を受け取った場合、背景は白ですが、設定アプリを開くと、plist の com.apple.Preferences の RGB 値に変更する必要があります。iOS 6 では、アプリを開いたときに UINavigationBar に一致するようにステータス バーの背景が自動的に変更されます。
私が使用した:
SBApplication *frontApp = [(SpringBoard*)[UIApplication sharedApplication] _accessibilityFrontMostApplication];
NSDictionary *statusBarCachedColors = [NSDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/cc.tweak.statuscolor.plist"];
NSString *colorString = [statusBarCachedColors objectForKey:frontApp];
NSArray *components = [colorString componentsSeparatedByString:@","];
UIColor *tintColor = [UIColor colorWithRed:[components[0] floatValue] green:[components[1] floatValue] blue:[components[2] floatValue] alpha:1.0];
私はジェイルブレイクされたデバイス用に開発しています