Soy nuevo en el desarrollo de MonoTouch y iPhone. Tengo mis imágenes (PNG) en una carpeta de recursos en MonoDevelop; sin embargo, si deseo establecer la propiedad de la imagen para un botón en Interface Builder, ¿cómo hago eso? Siempre es un menú desplegable en blanco. ¿Debo usar XCode para acceder al archivo XIB y luego insertar de alguna manera el archivo de imagen del botón que necesitaré en él?Imágenes en Interface Builder al usar MonoTouch
Respuesta
This is a known limitation of MonoDevelop and Interface Builder. Para agregar imágenes a un XIB en Interface Builder, deben formar parte de un proyecto de XCode, que por supuesto proveniente de MonoDevelop no lo son.
Para lograr lo que intenta hacer, deberá configurar la imagen mediante código y asegurarse de que la acción de compilación de su imagen esté configurada en Contenido. Para hacer esto, simplemente haga clic con el botón derecho en su imagen dentro de MonoDevelop y seleccione Crear acción> Contenido.
En su vista con el botón, cree una salida en Interface Builder para su botón, conéctela, luego desde el código para establecer su imagen, solo necesita usar el .FromFile ("ruta/nombre") método de UIImage.
UIImage buttonImage = UIImage.FromFile ("resources/image.png");
myButton.SetBackgroundImage (buttonImage,UIControlState.Normal);
Eso está fuera de mi cabeza, pero creo que debería hacerlo.
Aún puede configurar la imagen en Interface Builder, simplemente no aparecerá en IB mientras edita. Agregue la imagen al directorio raíz en monotouch, establezca el contenido como arriba, y en IB configure la imagen en "myimage.png". Verá un signo de interrogación durante la edición, pero durante el tiempo de ejecución aparecerá la imagen. –
vote por una gran respuesta. – bharath
Puede configurar manualmente la imagen en el Interface Builder, pero no se mostrará hasta el tiempo de ejecución. El nombre de la imagen puede incluir una ruta, p. "images/settings.png".
También necesitaba que esto funcionara, aquí hay una solución que encontré. Necesita crear un proyecto dummy xcode. Colóquelo en la misma carpeta que su proyecto. Agregue todos sus archivos xib y de imagen a ese proyecto xcode arrastrándolos cuando se abra el proyecto en xcode. Ahora podrás ver la vista previa de las imágenes. Los archivos de imagen deben estar en la misma carpeta que el archivo de proyecto y se debe abrir xcode con el proyecto ficticio mientras se abre el constructor de interfaz. No es genial, pero resuelve el problema por el momento. Here es un proyecto de muestra que he creado.
Para resolver este problema en el lado de MonoDevelop, es necesario crear algún código de comunicación entre procesos, creo que un buen punto de partida será buscar "PBXProjectWatcherServerConnection-3.1.2" en google.
Esto funciona ... tipo de. Cuando selecciono una imagen en el constructor Interfaz, solo usa el nombre inmediato de la imagen e ignora la ruta del archivo. Si agrego la ruta de archivo en el constructor de interfaz, la imagen vuelve al signo de interrogación. ¿Hay alguna forma de hacerlo funcionar con la ruta? –
Todas las soluciones dadas aquí son completamente incorrectas y engañosas. Todo lo que necesita hacer es colocar sus imágenes en la carpeta de Recursos (en la raíz del proyecto) y agregar sus imágenes a esta carpeta. Después de agregar archivos a esta carpeta, marque todos los archivos y asegúrese de que su acción de compilación esté configurada en BundleResource.
Estas características solo se agregaron en 2012, por lo que las respuestas anteriores fueron correctas, pero ahora están desactualizadas. Consulte aquí la respuesta del desarrollador a la misma pregunta: http://stackoverflow.com/a/11493599/66131. De todos modos, tu respuesta funcionó perfectamente, ¡así que gracias! –
- 1. Usar Singleton In Interface Builder?
- 2. Problemas al utilizar UITapGestureRecognizers en Interface Builder
- 3. Cómo usar UITableViewCell personalizado desde Interface Builder?
- 4. Aplicación de iPhone sin usar Interface Builder
- 5. Interface Builder UIDatePicker
- 6. advertencias Interface Builder
- 7. Vistas de grupo en Interface Builder
- 8. iOS Interface Builder - ¿Cómo restablecer la imagen al tamaño predeterminado?
- 9. Usando Interface Builder para UITableViews
- 10. Características ocultas de Interface Builder?
- 11. iPhone Interface Builder y Delegados
- 12. Guardando Interface Builder Cambios al construir en Xcode
- 13. Android Designer como "Interface Builder"?
- 14. ¿Colores extraños en XCode Interface Builder?
- 15. ZBarReaderView clase desconocida en Interface Builder archivo
- 16. NSTextField con NSNumberFormatter automático en Interface Builder
- 17. Actualizar clase UIView en Interface Builder
- 18. Convertir NIB en XIB sin Interface Builder
- 19. hereda el archivo xib en Interface Builder
- 20. se pueden agrupar elementos en Interface Builder
- 21. Cómo agregar MKUserTrackingBarButtonItem en Interface Builder
- 22. Color de Interface Builder diferente al código de color
- 23. XCode: Interface Builder se bloquea al compilar XIB
- 24. Tutorial de Interface Builder for iPhone
- 25. ¿Puedo crear aplicaciones RubyMotion con Interface Builder?
- 26. UIView personalizado creado con Interface Builder accesible/posicionable a través de Interface Builder
- 27. Nesting Custom Classes/XIB's con Interface Builder
- 28. iPhone - ¿Crear objetos personalizados para Interface Builder?
- 29. JavaScript Boolean Search Query Builder Interface Library?
- 30. ¿No está usando Interface Builder, comprarme algo?
No sé nada sobre monotouch, pero en mi experiencia para Interface Builder para "ver" un archivo de imagen el archivo necesita ser parte del mismo proyecto Xcode del que el archivo xib es parte. En realidad, no incrusta el archivo de imagen en el archivo xib, pero el cargador de punta normalmente solo puede cargar recursos del paquete de aplicaciones, y cuando agrega una imagen a un proyecto de Xcode, se agrega como un archivo que estará en el paquete de aplicaciones construido. Por lo tanto, IB espera que los recursos del proyecto Xcode sean archivos válidos para hacer referencia a los archivos nib (xib), ya que tiene cierta seguridad de que estarán allí en tiempo de ejecución. – Nimrod