c# – Xamarin:如何从iOS库项目加载图像
我有一个用MvvmCross设计的Xamarin项目.有子项目:
>核心(PCL) 如果我将图像添加到我的iOS项目(Resoureces / Images / test_image.png),那么我可以使用以下代码加载它: UIImage image = UIImage.FromBundle("Images/test_icon.png"); 现在,我想使用一个新的子项目 >控件(iOS库) 该库应该加载图像.我在Controls(Resoureces / Images / test_image.png)中添加了一个图像 但我无法在Controls proj中加载此图像. 我的问题:如何从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,1,10)); View.AddConstraint (NSLayoutConstraint.Create (button,NSLayoutAttribute.Top,74)); View.AddConstraint (NSLayoutConstraint.Create (button,NSLayoutAttribute.Width,null,NSLayoutAttribute.NoAttribute,64)); View.AddConstraint (NSLayoutConstraint.Create (button,NSLayoutAttribute.Height,64)); } } 这是完整的项目:https://bitbucket.org/ww_wschaefer/xamarin-first-crossover-app/overview 解决方法
对我的评论有点解释.
你必须改变 UIImage image = UIImage.FromBundle("Images/test_icon.png"); 至 UIImage image = UIImage.FromFile("Images/test_icon.png"); 由于图像未添加为捆绑资源. UIImage.FromFile()方法异步加载图像.它还允许应用程序从外部位置加载图像. 与UIImage.FromFile()方法不同,UIImage.FromBundle()方法是一个阻塞调用,只加载应用程序包中的图像.但是,它会在加载后缓存图像. 为了进一步了解,请查看本书 – Developing C# Apps for iPhone and iPad using MonoTouch (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |