C# Xamarin:如何从iOS库项目加载图像
我有一个用MvvmCross设计的Xamarin项目。有几个子项目:C# Xamarin:如何从iOS库项目加载图像,c#,xamarin,xamarin.ios,uiimage,mvvmcross,C#,Xamarin,Xamarin.ios,Uiimage,Mvvmcross,我有一个用MvvmCross设计的Xamarin项目。有几个子项目: 核心(PCL) 视图模型(PCL) iOS(可执行) 如果我将图像添加到iOS项目(resourcese/Images/test_image.png),则可以使用以下代码加载图像: UIImage image = UIImage.FromBundle("Images/test_icon.png"); 现在,我想使用一个新的子项目 控件(iOS库) 此库应加载图像。我向控件添加了一个图像(resourcese/Imag
- 核心(PCL)
- 视图模型(PCL)
- iOS(可执行)
UIImage image = UIImage.FromBundle("Images/test_icon.png");
现在,我想使用一个新的子项目
- 控件(iOS库)
public class MyButton : UIButton
{
public MyButton () : base()
{
Initialize ();
}
void Initialize()
{
// load image from bundle
UIImage image = UIImage.FromBundle("Images/test_icon.png");
// image is null
this.SetImage (image, UIControlState.Normal);
}
}
而ViewController类是:
public partial class FirstView : MvxViewController
{
public FirstView () : base ("FirstView", null)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// load image from bundle
// UIImage image = UIImage.FromBundle("Images/test_icon.png");
// image is not null if added in iOS Proj
// this.imageView.Image = image;
MyButton button = new MyButton ();
View.Add (button);
View.AddConstraint (NSLayoutConstraint.Create (button, NSLayoutAttribute.Right, NSLayoutRelation.Equal, View, NSLayoutAttribute.Right, 1, 10));
View.AddConstraint (NSLayoutConstraint.Create (button, NSLayoutAttribute.Top, NSLayoutRelation.Equal, View, NSLayoutAttribute.Top, 1, 74));
View.AddConstraint (NSLayoutConstraint.Create (button, NSLayoutAttribute.Width, NSLayoutRelation.Equal, null, NSLayoutAttribute.NoAttribute, 0, 64));
View.AddConstraint (NSLayoutConstraint.Create (button, NSLayoutAttribute.Height, NSLayoutRelation.Equal, null, NSLayoutAttribute.NoAttribute, 0, 64));
}
}
以下是完整的项目:对我的评论做一点解释 你必须改变
UIImage image = UIImage.FromBundle("Images/test_icon.png");
到
因为图像不是作为捆绑资源添加的
UIImage.FromFile()
方法异步加载图像它还允许应用程序从外部位置加载图像
与UIImage.FromFile()。但是,它会在加载图像后缓存图像
为了进一步理解,请看一看这本书-除非它作为bundeled资源提供,否则不能使用from Bundle,我认为最好使用UIImage.FromFile(“Images/test\u icon.png”)
。你也应该看看这个。我真不敢相信,解决办法这么简单,谢谢Rohit。很高兴你的问题解决了。如果您感兴趣,我已经添加了解释。如果您不介意,请接受答案,如果它解决了您的问题,这样也会对其他人有所帮助@iOSfleer@iOSfleer-您能否确认这是否是适合您的解决方案?
UIImage image = UIImage.FromFile("Images/test_icon.png");