我正在开发一个无线电应用程序,需要自定义音量跟踪器的颜色。
myVolumeView = [[MPVolumeView alloc] initWithFrame: CGRectMake(26, 292, 268, 23)];
[self.view addSubview: myVolumeView];
for (id current in myVolumeView.subviews) {
if ([current isKindOfClass:[UISlider class]]) {
UISlider *volumeSlider = (UISlider *)current;
volumeSlider.minimumTrackTintColor = [UIColor redColor];
volumeSlider.maximumTrackTintColor = [UIColor lightGrayColor];
//[volumeSlider setThumbImage:[UIImage imageNamed:@"volTrack.png"] forState:UIControlStateNormal];
}
}如果我像这样运行代码,它会导致一个奇怪的bug:

但是如果我注释掉最大轨迹颜色,它可以工作(尽管没有自定义颜色)。

有什么补救措施吗?我运行的是7.1.1
发布于 2014-05-04 17:55:56
让我们试一试:
if ([current isKindOfClass:[UISlider class]]) {
UISlider *volumeSlider = (UISlider *)current;
volumeSlider.minimumTrackTintColor = [UIColor redColor];
volumeSlider.maximumTrackTintColor = [UIColor lightGrayColor];
[volumeSlider setThumbImage:[UIImage imageNamed:@"volTrack.png"] forState:UIControlStateNormal];
// I think you should set these properties:
[slider setMinimumTrackImage:[[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filled ofType:@"png" inDirectory:@"MDAudioPlayer.bundle"]]stretchableImageWithLeftCapWidth:5 topCapHeight:3] forState:UIControlStateNormal];
[slider setMaximumTrackImage:[[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:empty ofType:@"png" inDirectory:@"MDAudioPlayer.bundle"]] stretchableImageWithLeftCapWidth:5 topCapHeight:3] forState:UIControlStateNormal];
}https://stackoverflow.com/questions/23448839
复制相似问题