如何在 iphone/ipod 状态栏中添加图标?
Posted
技术标签:
【中文标题】如何在 iphone/ipod 状态栏中添加图标?【英文标题】:How to add an icon into iphone/ipod status bar? 【发布时间】:2011-09-10 17:12:52 【问题描述】:Apple 不允许开发者在状态栏中添加图标吗?
我遵循了书中的代码。代码很简单:
@interface UIApplication (extended)
- (void) addStatusBarImageNamed:(NSString *)aName;
- (void) removeStatusBarImageNamed:(NSString *)aName;
@end
- (void)performAction
if (xxx)
[[UIApplication sharedApplication]addStatusBarImageNamed:@"Default_EN.png"];
else
[[UIApplication sharedApplication]addStatusBarImageNamed:@"Default_EC.png"];
但它给出了以下反馈:
-addStatusBarImageNamed: 已弃用。什么都不做。
我能做什么?
【问题讨论】:
新的 sdk 版本对此有何更新? 【参考方案1】:据我所知,SDK 中不允许这样做,但他们可能有一些私有 API 来执行此操作,但到目前为止他们还没有公开这些,我认为您无法在状态栏中添加图标。 如果有人知道请纠正我。
【讨论】:
正确,这是私有 API。甚至不推荐使用的 API,这将直接导致 App Store 被拒绝。 +1 - 也请参考***.com/questions/1391059/…。 感谢@Nick Weaver @WebberLai:还请阅读@Nick Weaver 提供的SO 链接。【参考方案2】:在 Classes/YourViewController.m 中,addStatusBarImageNamed:removeOnExit: 方法需要被覆盖。
- (void) addStatusBarImageNamed:(NSString*)image removeOnExit: (BOOL) remove
if(_statusbarimage!=nil && _responds)
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"statusBarEnabled"] integerValue] == 1)
[self removeStatusBarImageNamed:_statusbarimage];
statusbarimage=image;
if (_responds)
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"statusBarEnabled"] integerValue] == 1)
[super addStatusBarImageNamed:image removeOnExit: remove];
看看它是否工作正常。
【讨论】:
以上是关于如何在 iphone/ipod 状态栏中添加图标?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone在状态栏中添加图标(la Battery Indicator)
iPhone / iPod Touch 图标图像错误(MininumOSVersion 低于 3.2),而项目适用于 iPad?
缺少推荐的图标文件。该捆绑包不包含 .png 格式的 iPhone / iPod Touch 应用程序图标,该图标恰好为“120x120”像素