我正在尝试在使用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];
}
}
}
我很感激帮助!
答案 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吗?