Ios 如何处置UIButton';s图像内容,而不是按钮本身

Ios 如何处置UIButton';s图像内容,而不是按钮本身,ios,xamarin,uibutton,uiimage,dispose,Ios,Xamarin,Uibutton,Uiimage,Dispose,假设我有一个UIButton,我给了它一个背景图像,如下所示: UIButton button = new (....); button.SetBackroundImage = UIImage.FromFile(....); 如何在不保留图像变量的情况下处理按钮图像?我尝试了下面的代码,但似乎不起作用 button.CurrentBackgroundImage.Dispose() 我的情况是,我有一个collectionview,其中有10个可见的项目,但可能有数百个项目。很明显,它只是重

假设我有一个UIButton,我给了它一个背景图像,如下所示:

UIButton button = new (....);
button.SetBackroundImage = UIImage.FromFile(....);
如何在不保留图像变量的情况下处理按钮图像?我尝试了下面的代码,但似乎不起作用

button.CurrentBackgroundImage.Dispose() 

我的情况是,我有一个collectionview,其中有10个可见的项目,但可能有数百个项目。很明显,它只是重复使用10个单元格和10个按钮。被绘制并设置为UIButtons背景图像的图像是动态绘制的,当您滚动并重新加载可重复使用的集合视图单元格时,需要对其进行处理

只需将图像设置为零即可。iOS将在必要时处理该映像

[button setImage:nil forState:UIControlStateNormal];

对于Xamarin特定的Dispose用法检查。

使用C#中的
IDisposable
模式:


我更新了上面的帖子,添加了更多信息。我使用的是一个动态创建的图像,需要处理,而不是为空。这样设置新映像是否会处理旧映像?您不需要处理映像,因为将映像设置为nil时会发生这种情况。如果这是Xamarin特有的情况,您可以尝试先获取映像的引用,将UIButton.image设置为nil,然后对引用的映像运行dispose。通常在iOS中,缓存控制器处理所有这些“巫毒”。
using (var image = UIImage.FromFile ("yourImageFile.png")){
    button.SetBackroundImage = image;
}