Я пытаюсь добавить заставку в приложение iOS, созданное с помощью Xamarin.Forms. Я могу отобразить сам экран-заставку, но не могу добавить изображение в ImageView в редакторе раскадровки.
Я могу воспроизвести это поведение в совершенно новом «кроссплатформенном» решении, и я следую инструкциям здесь. В частности, на шаге 10 инструкции вы должны иметь возможность выбрать изображение из раскрывающегося списка.
Если вы на самом деле щелкнете стрелку того, что только кажется раскрывающимся списком, на самом деле ничего не «упадет»; вместо этого VS открывает OpenFileDialog под названием «Добавить существующий элемент».
Независимо от того, какой файл я выберу, VS только добавляет его в папку ресурсов проекта (как BundleResource), но не меняет изображение в раскадровке.
Я пробовал добавлять изображения в каталог активов как стартовое изображение, так и как обычный набор изображений. Я пробовал ввести имя файла или имя набора активов в редактируемую часть «раскрывающегося списка»; не повезло. Я также попытался отредактировать XML раскадровки, чтобы добавить атрибут image = (в тег ImageView), снова используя либо имя файла, либо имя набора активов, но это не работает, и последующие сохранения из редактора раскадровки фактически удаляют атрибут. Я также попытался явно добавить в проект всю папку Assets.xcassets, как было предложено в одном из ответов здесь.
FWIW, свойство с пометкой «Выделено» непосредственно в разделе «Изображение» также имеет такое же поведение. Я предполагаю, что это какая-то ошибка VS; поведение свойства отличается не только от того, что описано в документации, но и конфликтует с внешним видом элемента управления.
Кто-нибудь встречал обходной путь?
Windows 10 Pro
VS 2017 15.8.3
Xamarin 4.11.0.756
Xamarin Designer 4.14.221
Xamarin.iOS и Xamarin.Mac SDK 11.14.0.13
Такой настройки нет.
Это ошибка, вы можете проголосовать за эту проблему https://developercommunity.visualstudio.com/content/problem/319294/xamarinios-cant-select-image-asset-for-image-view.html
Цифры ... А есть возможность программно добавить изображение?
Да, imageView.Image = UIImage.FromBundle ("имя_ресурса");
Этот элемент управления imageView находится на раскадровке LaunchScreen, которая загружается платформой при запуске. Как мне получить ссылку на раскадровку (и, следовательно, на imageView) перед ее загрузкой? А где код, Main.cs? AppDelegate.cs?
К сожалению, мой метод не подходит для LaunchScreen. Но проверяя свою версию, я создал новый чистый проект, и свойство image работало. И активы, и ресурсы. В моем старом проекте не работает, чем бы я ни занимался.
Экспериментально в моем случае я обнаружил, что изображение свойства не работает, если я добавляю в решение такой проект, как net.standard. Если снять флажок с ссылки на проект в ссылках и сохранить решение, открыть конструктор раскадровки, свойство изображения будет работать.
Мне не удалось удалить свой проект netstandard из ссылок, потому что это мой общий проект Xamarin.Forms, и VS не разрешил мне снять его. К счастью, выгрузка проекта netstandard тоже работает!
Вы нажимали пункт «Копировать файл в каталог» при выборе изображения из папки?