1

我正在尝试在使用 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];
    }
  }
 }

感谢您的帮助!

4

1 回答 1

0

我尝试在以下位置修改示例:https ://github.com/slodge/NPlus1DaysOfMvvmCross/tree/master/N-11-KittenView_Collections

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

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

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

这工作得很好。


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

于 2013-06-03T09:57:08.737 回答