显示MvxCollectionViewCell的背景

时间:2013-06-01 19:02:13

标签: ios xamarin mvvmcross

我正在尝试在使用Xamarin和MvvmCross构建的iPhone应用程序中显示MvxCollectionViewCell的背景图像。我的目标是iOS 6.0及更高版本。以下是我正在使用的代码。我在显示背景图像时遇到了一些麻烦。我似乎无法弄清楚我做错了什么。似乎它应该是相当直接的。我在XCode中创建了单元格。单元格是100 X 100.它包含一个UIImageView,它是90 X 72.UIImageView的X和Y分别是5和8。我也无法让图像在单元格内调整大小,但计划很快就会发布另一个问题。

using MonoTouch.UIKit;
using Cirrious.MvvmCross.Binding.Touch.Views;
using Cirrious.MvvmCross.Binding.BindingContext;

namespace DriveThroughSafari.Touch.Views.Pictures
{
public sealed partial class AnimalCutoutCell : MvxCollectionViewCell
{
    public static readonly UINib Nib = UINib.FromName ("AnimalCutoutCell", NSBundle.MainBundle);
    public static readonly NSString Key = new NSString ("AnimalCutoutCell");

    private readonly MvxImageViewLoader _loader;

    public AnimalCutoutCell (IntPtr handle) : base (handle)
    {

        MainImage = new UIImageView();
        _loader = new MvxImageViewLoader(() => MainImage);

        BackgroundView = new UIImageView {Image = new UIImage("Images/photo-frame")};

        this.DelayBind(() =>
            {
                var set = this.CreateBindingSet<AnimalCutoutCell, AnimalDataViewModel>();
                set.Bind(_loader).To(animal => animal.ImageUrl);
                set.Apply();
            });
    }

    public static AnimalCutoutCell Create ()
    {
        return (AnimalCutoutCell)Nib.Instantiate (null, null) [0];
    }
  }
 }

我很感激帮助!

1 个答案:

答案 0 :(得分:0)

我尝试在https://github.com/slodge/NPlus1DaysOfMvvmCross/tree/master/N-11-KittenView_Collections

修改示例

我更改了代码以匹配你的代码 - 包括构造函数中的这一行:

BackgroundView = new UIImageView {Image = new UIImage("MyImage.png")};

图片MyImage.png包含在Touch项目根目录中的构建操作content中。

这很好。


我怀疑这里的第一步是编写一些测试代码并使用调试器 - var myImage = UIImage.FromFile("Images/photo-frame")返回什么?它是一个有效的UIImage吗?