Изображения в интерфейсе Builder при использовании MonoTouch

Я новичок в разработке MonoTouch и iPhone. У меня есть мои изображения (PNG) в папке ресурсов в MonoDevelop, однако, если я хочу установить свойство изображения для кнопки в Interface Builder, как мне это сделать? Это всегда пустое раскрывающееся меню. Нужно ли мне использовать XCode для доступа к XIB файлу, а затем каким-то образом вставить файл образа кнопки, который мне понадобится?

Ответы

Ответ 1

Это известное ограничение MonoDevelop и Interface Builder. Чтобы добавить изображения в XIB в Interface Builder, они должны быть частью проекта XCode, который, конечно, из MonoDevelop, они не являются.

Чтобы достичь того, что вы пытаетесь сделать, вам нужно будет установить изображение с помощью кода и убедитесь, что для действия сборки вашего изображения установлено значение Контент. Для этого просто щелкните правой кнопкой мыши изображение внутри MonoDevelop и выберите "Построить действие" > "Содержимое".

На вашем представлении с помощью кнопки на нем создайте розетку в Interface Builder для вашей кнопки, подключите ее, затем от кода для установки изображения, вам просто нужно использовать метод .FromFile( "путь/имя" ) UIImage.

UIImage buttonImage = UIImage.FromFile ("resources/image.png");
myButton.SetBackgroundImage (buttonImage,UIControlState.Normal);

Это с моей головы, но я думаю, что это должно сделать.

Ответ 2

Вы можете вручную установить изображение в Interface Builder, но оно не будет отображаться до времени выполнения. Название изображения может включать в себя путь, например. "Изображения/settings.png".

Ответ 3

Все приведенные здесь решения полностью ошибочны и вводят в заблуждение. Все, что вам нужно сделать, - разместить изображения в папке "Ресурсы" (в корне проекта) и добавить изображения в эту папку. После добавления файлов в эту папку отметьте все файлы и убедитесь, что их действие сборки установлено в BundleResource.

Ответ 4

Мне тоже нужно было работать, вот обходной путь, который я нашел. Вам нужно создать проект фиктивного xcode. Поместите его в ту же папку, что и ваш проект. Добавьте все ваши xib файлы и файлы изображений в этот проект xcode, перетащив их, когда проект открывается в xcode. Теперь вы сможете просмотреть предварительный просмотр изображений. Файлы изображений должны находиться в той же папке, что и файл проекта, и xcode должен быть открыт с помощью фиктивного проекта, когда открывается конструктор интерфейса. Не очень - но сейчас решает проблему. Здесь - образец проекта, который я создал.

Чтобы решить эту проблему на стороне MonoDevelop, необходимо создать код взаимодействия между процессами, я думаю, что хорошей отправной точкой будет поиск "PBXProjectWatcherServerConnection-3.1.2" в google.