У меня есть проект Xamarin в стиле MvvmCross. Есть подпроекты:Xamarin: Как загрузить изображение из проекта библиотеки iOS
- ядро (PCL)
- ViewModel (PCL)
- IOS (Executable)
Если я добавить изображение в мой проект IOS (Resoureces/Images/test_image. PNG), то я могу загрузить его с этим кодом:
UIImage image = UIImage.FromBundle("Images/test_icon.png");
Теперь я хочу использовать новый подпроект
- управления (IOS библиотека)
Эта библиотека должна загрузить изображение. Я добавил изображение в Controls (Resusreces/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, 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));
}
}
Вот полный проектируемый: https://bitbucket.org/ww_wschaefer/xamarin-first-crossover-app/overview
Вы не можете использовать из комплекта, если его доступен как bundeled ресурс, я думаю, вы бы лучше использовать 'UIImage.FromFile («Images/test_icon.png») '. Вы также должны посмотреть на этот [Вопрос] (http://stackoverflow.com/q/18130779/1155650). –
Я не могу поверить, решение так просто, спасибо Рохит. – iOSfleer
рад, что ваша проблема решена. Я добавил объяснение, если вы заинтересованы. –