我的问题如下: 我正在创建一个包含许多ImageStringElements的部分,当选择播放音频文件时,例如。
Section s = new Section();
foreach (var idea in ideas)
{
s.Add(new ImageStringElement(idea.Id, delegate {ElementTapped();}, playImage));
}
现在当点击其中一个元素时,我想将playImage更改为另一个元素,即PauseImage。然后,当它被选中时,它会变回PlayImage。不知道如何在ElementTapped()方法中执行此操作。基本上我想拥有与语音备忘录应用程序类似的功能。
答案 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来更改图像