作为monotouch.dialog的一部分,动态更改ImageStringElement中的图像

时间:2012-01-26 17:48:15

标签: xamarin.ios monotouch.dialog

我的问题如下: 我正在创建一个包含许多ImageStringElements的部分,当选择播放音频文件时,例如。

Section s = new Section(); 
foreach (var idea in ideas)
{
    s.Add(new ImageStringElement(idea.Id, delegate {ElementTapped();}, playImage));
}

现在当点击其中一个元素时,我想将playImage更改为另一个元素,即PauseImage。然后,当它被选中时,它会变回PlayImage。不知道如何在ElementTapped()方法中执行此操作。基本上我想拥有与语音备忘录应用程序类似的功能。

1 个答案:

答案 0 :(得分:6)

您可以继承ImageStringElement并进行两项更改:

添加:

class FlippingImageElement : ImageStringElement
{
    UIImage currentImage;
    UITableViewCell currentCell;

    public FlippingImageElement (string caption, UIImage image) : base (caption, image)
    {
        currentImage = image;
    }

    public override UITableViewCell GetCell (UITableView tv)
    {
        var cell = base.GetCell (tv);
        cell.ImageView.Image = currentImage;
        currentCell = cell;
    }

    public void SetImage (UIImage image)
    {
        currentImage = image;
        if (currentCell != null)
            currentCell.ImageView.Image = currentImage;
    }
}

使用此新元素而不是MonoTouch.Dialog,并调用SetImage API来更改图像