小编Mar*_*gan的帖子

在iOS7中,使用UIAppearance代理时,UIBarButtonItems不尊重粗体"完成"样式

在iOS7中,默认情况下,UIBarButtonItem对样式UIBarButtonItemStylePlain使用Helvetica常规权重字体,对UIBarButtonItemStyleDone使用粗体.

我的应用程序使用自定义字体,我使用UIAppearance代理来实现此目的:

appearance = @{NSFontAttributeName: [UIFont fontWithName:@"ProximaNova-Regular" size:18.0]};
[[UIBarButtonItem appearance] setTitleTextAttributes:appearance
                                            forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

麻烦的是,外观代理使Plain和Done样式按钮成为我上面指定的常规重量字体.

任何想法如何让UIBarButtonItem根据样式使用不同的自定义字体权重?

uikit uibarbuttonitem ios uiappearance ios7

7
推荐指数
1
解决办法
2057
查看次数

当AudioSessionActive为NO时,无法通过硬件按钮控制AVAudioPlayer的音量

我正在构建一个转弯导航应用程序,播放周期性的短片声音.无论屏幕是否被锁定,声音都应该播放,应该与其他音乐播放混合,并且当播放此音频时应该播放其他音乐.

Apple在29:20分钟的"WWDC 2010会话412 iPhone OS第1部分音频开发"视频中详细讨论了转弯用例.实施效果很好,但有一个问题 - 当应用程序运行时,按下硬件音量控件可调整铃声音量,而不是应用音量.如果要更改应用程序音量,则必须在播放提示时按音量按钮.

Apple在视频中非常具体,您不应该让AVAudioSession处于活动状态,但如果AVAudioSession处于非活动状态,则音量按钮将无法控制我的应用程序的音量.

这是我用来设置的代码:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
propertySetError = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);

UInt32 allowMixing = true;
propertySetError = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(allowMixing), &allowMixing);

UInt32 shouldDuck = true;
propertySetError = AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(shouldDuck), &shouldDuck);

OSStatus activationResult = AudioSessionSetActive(true);

NSError* err = nil;
_player = [[AVAudioPlayer alloc] initWithData:audioData error:&err];
_player.delegate = self;
[_player play];
Run Code Online (Sandbox Code Playgroud)

并且我在最后将会话激活为NO,因为Apple建议:

OSStatus activationResult = AudioSessionSetActive(false);
NSAssert(activationResult == kAudioSessionNoError, @"Error deactivating audio session");
Run Code Online (Sandbox Code Playgroud)

有什么我想念的,或者我不得不违背他们在视频中推荐的内容?

objective-c core-audio avaudioplayer avaudiosession

3
推荐指数
1
解决办法
1983
查看次数