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

StackOverflow https://stackoverflow.com/questions/2039387

  •  19-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

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

Это не пришло мне в голову, но я думаю, что так должно быть.

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top