美文网首页
UIProgressView 设置TrackImage问题

UIProgressView 设置TrackImage问题

作者: 郭大侠smile | 来源:发表于2016-08-17 17:10 被阅读996次

    问题描述:在代码中使用UIProgressView 设置了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进行赋值,都说了ios的bug就不能直接拿到属性进行赋值了,取出UIProgressView的SubViews,并根据自己的需求对图片进行拉伸,我这里选择的是平滑拉伸,代码如下:

    -(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;}

    搞定,将这个类导入其他使用直接进行图片赋值即可

    相关文章

      网友评论

          本文标题:UIProgressView 设置TrackImage问题

          本文链接:https://www.haomeiwen.com/subject/auimsttx.html