2016-05-07 2 views
1

Я создаю универсальное приложение Xamarin для iOS. Я работаю над экраном запуска и пытаюсь использовать классы размеров для изменения макета для устройств iPhone и iPad. Позиционирование работает правильно, но когда я пытаюсь установить свойства изображения, все идет не так.Xamarin Image Assets для классов классов

Я пытаюсь использовать функцию класса размера в файле XCAssets в Xcode для установки правильного изображения, которое требуется для разных размеров экрана. У меня есть набор изображений для [any, any] ([,]) для iPhone, а затем у меня есть один набор для [обычного, обычного] ([+, +]) для iPad.

В построителе интерфейса Xcode я могу видеть правильное изображение в моем файле xib запуска при переключении между классами [any, any] и [regular, regular]. Однако, когда я запускаю это в своем iPad-симуляторе, я вообще не вижу никаких изображений. Обратите внимание, что когда я запускаю приложение в своем симуляторе iPhone, изображения [любые, любые] подбираются правильно. Это происходит только при запуске на моем iPad-симуляторе.

Я прибегал к использованию инструментов Xcode, поскольку я не могу найти способ в Xamarin для получения изображений в пределах одного набора изображений для разных классов размера. Я считаю, что проблема, с которой я сталкиваюсь, должна быть проблемой в Xamarin, не соблюдающей свойства, установленные в Xcode.

Мой вопрос: кто-нибудь мог заставить это работать на Xamarin, и если да, то как?

Спасибо!

ответ

0

Хорошо, поэтому я нашел решение. Похоже, что на самом деле это ошибка в Xamarin и имеет дело с тем, что Xamarin не всегда правильно обновляет файлы XIB.

Во-первых, не используйте параметры класса размера внутри файла XCAsset в Xcode. Просто используйте Xamarin версию инструмента, и установите iPhone и iPad варианты набора изображений. Я использовал схему именования [image_name] [@ 2x | 3x]. [Ext] для iPhone-графики и схемы [image_name] ~ ipad [@ 2x | 3x]. [Ext] для iPad вариантов. Однако имейте в виду, что согласно документации Apple при использовании классов размеров суффикс ~ ipad игнорируется. Я просто использую этот суффикс, чтобы сделать имена файлов уникальными между iPhone и iPad.

Во-вторых, продолжайте использовать классы размера по своему усмотрению, но не беспокойтесь об изменении графического имени и не беспокойтесь о том, что вы не увидите предварительный просмотр изображения, когда в [обычном, обычном] классе ,

В-третьих, перед запуском приложения используйте команду очистки Xamarin хотя бы один раз, но иногда требуется несколько попыток полностью очистить решение.

После прохождения тезисов изображения для меня работали для iPad с помощью [обычного, обычного] размера. Я знаю, что это кажется взломанным и, возможно, не является способом «Хамарин» или «Яблоко», но это работает.

Надеюсь, что это поможет кому-то еще не потратить два часа своей жизни на короткие предложения Xamarin :)