У меня есть UIToolBar, который должен содержать ползунки для регулировки громкости и яркости. Я использую ползунок MPVolumeView для громкости и обычный UISlider для яркости. В то время как сами движки работают отлично, их вертикальные позиции не соответствуют друг другу:Согласование вертикальных положений MPVolumeView и UISlider в UIToolBar
Как я могу получить их, чтобы быть на той же высоте?
Моего код:
- (void) createToolbar{
toolBar = [[UIToolbar alloc] init];
toolBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44);
UISegmentedControl *modeSelector = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Play", @"Rec", nil]];
[modeSelector setSegmentedControlStyle:UISegmentedControlStyleBar];
[modeSelector addTarget:self action:@selector(changePlayMode) forControlEvents:UIControlEventValueChanged];
modeSelector.selectedSegmentIndex = 0;
UIBarButtonItem *modeSelectorAsToolbarItem = [[UIBarButtonItem alloc] initWithCustomView:modeSelector];
brightnessSlider = [[UISlider alloc] initWithFrame:CGRectMake(0, 0, 150, 30)];
brightnessSlider.minimumValue = 0;
brightnessSlider.maximumValue = 1;
brightnessSlider.value = [[UIScreen mainScreen] brightness];
brightnessSlider.continuous = YES;
[brightnessSlider addTarget:self action:@selector(adjustBrightness:) forControlEvents:UIControlEventValueChanged];
UIBarButtonItem *brightSliderAsToolbarItem = [[UIBarButtonItem alloc] initWithCustomView:brightnessSlider];
MPVolumeView *volView = [[MPVolumeView alloc] initWithFrame:CGRectMake(0, 0, 150, 30)];
volView.showsRouteButton = NO;
UIBarButtonItem *volSliderAsToolbarItem = [[UIBarButtonItem alloc] initWithCustomView:volView];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *toc = [[UIBarButtonItem alloc] initWithTitle:@"Contents" style:UIBarButtonItemStyleBordered target:self action:@selector(goToToC)];
[toolBar setItems:[NSArray arrayWithObjects:modeSelectorAsToolbarItem, flexibleSpace, brightSliderAsToolbarItem, volSliderAsToolbarItem, flexibleSpace, toc, nil] animated:NO];
toolBar.autoresizingMask |= UIViewAutoresizingFlexibleWidth;
[[self view] addSubview:toolBar];
}
(. Изменение CGRectMake координат, кажется, не делать ничего)
комментария в вопросе «Custom MPVolumeView Thumb Image not vertically centered since iOS 5.1», казался, предлагает использовать «Крепежные выравнивания большого пальца» трюк объяснил here, но реализация этого кода, похоже, ничего не сделала, насколько я могу судить, и я не уверен, говорила ли речь об одной и той же проблеме.
Совершенная детали спасибо! :) – Jona
Great Hack, все еще работающий на iOS8! В не понимаю логику в реализации Apple ... Если у кого-то есть идея, я бы хотел это знать! –
Это действительно полезно! спасибо – Jerome