Добавить MPVolumeView на нижнюю панель инструментов
Я пытаюсь добавить экземпляр MPVolumeView в нижнюю панель моего контроллера навигации (флажок для панели инструментов отмечен). Я не получаю никаких ошибок с моим кодом, но когда я запускаю проект на моем устройстве, ползунок громкости не показ. Заранее спасибо за любые предложения, вот мой код:
@interface ViewController ()
{
AVPlayer *vPlayer;
AVPlayerItem *playerItem;
UISegmentedControl *segm;
UIToolbar *toolbar;
}
@end
@implementation ViewController
@synthesize myViewVolume;
@synthesize nowPlaying;
- (void)viewDidLoad
{
[super viewDidLoad];
playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://vibesradio.org:8000 /listen.pls"]];
vPlayer = [[AVPlayer alloc] initWithPlayerItem:playerItem];
[playerItem addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew context:NULL];
//self.myViewVolume = [[MPVolumeView alloc] initWithFrame:CGRectMake(20, 330, 280, 50)];
self.myViewVolume = [[MPVolumeView alloc] initWithFrame: toolbar.bounds];
[self.myViewVolume sizeToFit];
[self.view addSubview:toolbar];
[toolbar addSubview:self.myViewVolume];
}
1 ответ
Вы не можете добавить подпредставления на панель инструментов. Вы должны добавить UIBarButtonItem, вид которого является видом, который вы хотите показать.
UIBarButtonItem* b = [[UIBarButtonItem alloc] initWithCustomView: myVolumeView];
myToolbar.items = @[b];
Это не имеет ничего общего с MPVolumeView. Это верно для любого произвольного представления, которое вы хотели бы добавить на панель инструментов или панель навигации.
Вот фактический код, который работает на моем устройстве для контроллера представления в интерфейсе навигации:
MPVolumeView* vv = [[MPVolumeView alloc] initWithFrame: CGRectMake(0, 0, 150, 40)];
UIBarButtonItem* b = [[UIBarButtonItem alloc] initWithCustomView: vv];
self.toolbarItems = @[b];
self.navigationController.toolbarHidden = NO;
Обратите внимание, что вы должны проверить на устройстве; в симуляторе нет интерфейса для просмотра объема.:(