2012-02-18 7 views
6

He agregado un XIB basado en UIViewController a mi solución y he arrastrado algunos UIViews en él. Ahora quiero que algunas de las vistas no sean UIView pero RoundedRectView (https://github.com/Krumelur/RoundedRectView) que hereda de UIView.¿Cómo usar la subclase UIView personalizada en el editor XIB con Monotouch?

¿Cómo lograr esto? Traté de cambiar la clase en Interface Builder pero eso no hizo nada. Luego modifiqué manualmente el archivo designer.cs pero eso resultó en un error. Luego intenté modificar el falso código ObjC pero eso también falló.

(estoy usando Xcode 4.2 y 2.8.6.4 MD)

Respuesta

8

Su vista subclase necesita al menos dos cosas:

  1. Registro de atributos

    [Register("MyView")]

    public class MyView : UIView {}

  2. IntPt r constructor

    public MyView(IntPtr handle) : base(handle) {}

A continuación, abre la XI ter en Interface Builder, agrega un UIView y configura su clase en el Inspector de Identidad al nombre que pasó con el atributo de Registro. Cuando lo conecte a una toma de corriente, verá que tiene el tipo correcto.

Outlet with correct type

+0

¿Cómo podría olvidar eso. ¡Gracias! – Krumelur

+0

BTW: ¿Hay alguna forma de exponer las configuraciones personalizables de mi vista a IB para que, por ejemplo, pueda tener el radio de la esquina directamente en IB? – Krumelur

+0

No lo creo. Creo que solo obtienes lo que está disponible para una UIView simple. –

Cuestiones relacionadas