我已經嘗試了很多方法來實現常規UISlider
並控制設備的音量,但它都是Native-C功能,導致許多無法追蹤的錯誤。如何自定義MPVolumeView?
我試過MPVolumeView
它像魅力一樣工作,甚至在關閉應用程序後,它甚至可以控制設備音量,就像iPod應用程序一樣。
我的問題是,有沒有辦法自定義帶有特定顏色和圖像的MPVolumeView
,就像UISlider
?
注:我想要一個合法的方法,而不使用私人的無證API。
UPDATE
按@Alexsander埃克斯答案,因爲子視圖隱藏在MPVolumeView
我通過子視圖不得不周期,獲得UISlider
和定製它,這裏是代碼。
IBOutlet UISlider *volumeSlider; //defined in <class.h> and connected to a UISlider in Interface Builder
-(void) viewDidLoad {
....
[self setCustomSlider];
....
}
-(void) setCustomSlider{
MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:[volumeSlider frame]] autorelease];
NSArray *tempArray = volumeView.subviews;
for (id current in tempArray){
if ([current isKindOfClass:[UISlider class]]){
UISlider *tempSlider = (UISlider *) current;
UIImage *img = [UIImage imageNamed:@"trackImage.png"];
img = [img stretchableImageWithLeftCapWidth:5.0 topCapHeight:0];
[tempSlider setMinimumTrackImage:img forState:UIControlStateNormal];
[tempSlider setThumbImage:[UIImage imageNamed:@"thumbImage.png"] forState:UIControlStateNormal];
}
}
[volumeSlider removeFromSuperview];
[self.view addSubview:volumeView];
}
幹得好。很好的工作更新你的問題。 – 2011-02-05 01:14:30
出於好奇,這是在App Store中接受的嗎? – sooper 2012-02-24 00:25:52
@sooper很晚回覆,對不起。不幸的是,我沒有繼續這個應用程序,也沒有提交給App Store。但從個人經驗來看,我看到很多修改原始組件的教程,並且他們被接受。 – medopal 2012-06-27 08:32:33