Iphone 将图像放置在进度条上

Iphone 将图像放置在进度条上,iphone,xamarin.ios,Iphone,Xamarin.ios,我有一个进度条,当它达到100%时,如果给定某个条件,我想用一个与进度条大小相同的图像覆盖它。我不确定我是需要UIImageView还是UIImageView。然后我是否将其作为子视图添加到具有进度条的视图中,并设置框架以使其与进度条的坐标匹配?我以前从未做过类似的事情。创建UIImageView,将新图像覆盖在进度条的顶部。最初只需将.hidden属性设置为YES,当条件满足时,将其更改为NO,从而使覆盖的UIImageView可见 创建UIImageView,新图像覆盖在进度条顶部。最初只需

我有一个进度条,当它达到100%时,如果给定某个条件,我想用一个与进度条大小相同的图像覆盖它。我不确定我是需要UIImageView还是UIImageView。然后我是否将其作为子视图添加到具有进度条的视图中,并设置框架以使其与进度条的坐标匹配?我以前从未做过类似的事情。

创建UIImageView,将新图像覆盖在进度条的顶部。最初只需将.hidden属性设置为YES,当条件满足时,将其更改为NO,从而使覆盖的UIImageView可见

创建UIImageView,新图像覆盖在进度条顶部。最初只需将.hidden属性设置为YES,当条件满足时,将其更改为NO,从而使覆盖的UIImageView可见

更好的设计是扩展UIProgressView类,如下所示。我还没有测试代码,因此需要进行任何调整:

public class CustomUIProgressView: UIProgressView {
    public CustomUIProgressView(){

    }

    public override float Progress {
        get {
            return base.Progress;
        }
        set {
            base.Progress = value;
            if (value==1.0){
                showCompletionImage();
            }
        }
    }

    private void showCompletionImage(){
        var img = new UIImageView( UIImage.FromBundle("img"));
        img.Frame = new System.Drawing.RectangleF(0,0,this.Frame.Width, this.Frame.Height);
        this.AddSubview(img);
        this.BringSubviewToFront(img);
    }

}

更好的设计是扩展UIProgressView类,如下所示。我还没有测试代码,因此需要进行任何调整:

public class CustomUIProgressView: UIProgressView {
    public CustomUIProgressView(){

    }

    public override float Progress {
        get {
            return base.Progress;
        }
        set {
            base.Progress = value;
            if (value==1.0){
                showCompletionImage();
            }
        }
    }

    private void showCompletionImage(){
        var img = new UIImageView( UIImage.FromBundle("img"));
        img.Frame = new System.Drawing.RectangleF(0,0,this.Frame.Width, this.Frame.Height);
        this.AddSubview(img);
        this.BringSubviewToFront(img);
    }

}

对不起,这是什么?我以前没见过。非常酷的解决方案。捆绑包就是你的应用程序zipfile。FromBundle()方法会自动尝试加载图像以获得适当的屏幕分辨率,因此您可以使用例如cat.png和cat@2x.png在dir和方法中,您可以只说UIImage.FromBundle(“cat”)。很有用。对不起,这是什么?我以前没见过。非常酷的解决方案。捆绑包就是你的应用程序zipfile。FromBundle()方法会自动尝试加载图像以获得适当的屏幕分辨率,因此您可以使用例如cat.png和cat@2x.png在dir和方法中,您可以只说UIImage.FromBundle(“cat”)。非常有用。