問題描述:在代碼中使用UIProgressView 設(shè)置了Progress Image和Track Image沒能正常的工作矫膨?
畫不多說先放效果圖:
Progress Image:
Track Image:
效果圖:
解決方法:
?這個問題是ios的bug,不必在意炭玫,只要重新建個子類繼承UIProgressView,并添加兩個屬性分別是:
@property (nonatomic,strong)UIImage *ggTrackImage;
@property (nonatomic,strong)UIImage *ggProgressImage;
分別在set方法里對UIProgressView自帶的trackImage,和ProgressImge進(jìn)行賦值本缠,都說了ios的bug就不能直接拿到屬性進(jìn)行賦值了,取出UIProgressView的SubViews,并根據(jù)自己的需求對圖片進(jìn)行拉伸,我這里選擇的是平滑拉伸悍手,代碼如下:
-(void)setGgTrackImage:(UIImage *)ggTrackImage
{_ggTrackImage=ggTrackImage;
UIImageView *trackImageView=self.subviews.firstObject;
CGRect trackProgressFrame=trackImageView.frame;
trackProgressFrame.size.height=self.frame.size.height;
trackImageView.frame=trackProgressFrame;
CGFloat width = _ggTrackImage.size.width/2.0;
CGFloat height = _ggTrackImage.size.height/2.0;
UIImage *imgTrack = [_ggTrackImage resizableImageWithCapInsets:UIEdgeInsetsMake(height, width, height, width)];
trackImageView.image=imgTrack;}
-(void)setGgProgressImage:(UIImage *)ggProgressImage
{_ggProgressImage=ggProgressImage;
CGFloat width = _ggProgressImage.size.width/2.0;
CGFloat height = _ggProgressImage.size.height/2.0;
UIImageView *progressImageView=self.subviews.lastObject;
CGRect ProgressFrame=progressImageView.frame;
ProgressFrame.size.height=self.frame.size.height;
progressImageView.frame=ProgressFrame;
UIImage *imgProgress = [_ggProgressImage resizableImageWithCapInsets:UIEdgeInsetsMake(height, width, height, width)];progressImageView.image=imgProgress;}