2012-02-18 20 views
6

Ho aggiunto un XIB basato su UIViewController alla mia soluzione e trascinato alcuni UIViews in esso. Ora voglio che alcune delle viste non siano UIView ma RoundedRectView (https://github.com/Krumelur/RoundedRectView) che eredita da UIView.Come utilizzare la sottoclasse UIView personalizzata nell'editor XIB con Monotouch?

Come raggiungere questo obiettivo? Ho provato a cambiare la classe in Interface Builder ma questo non ha fatto nulla. Quindi ho modificato manualmente il file designer.cs ma questo ha provocato un errore. Poi ho provato a modificare il codice falso ObjC, ma anche quello è fallito.

(sto usando Xcode 4.2 e MD 2.8.6.4)

risposta

8

La vista sottoclasse ha bisogno di almeno due cose:

  1. attributi Registrati

    [Register("MyView")]

    public class MyView : UIView {}

  2. IntPt r costruttore

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

si apre quindi il XIB in Interface Builder, aggiunge una UIView e impostare la sua classe in Impostazioni Identità al nome che avete passato all'attributo Registrati. Quando lo colleghi a una presa, vedrai che ha il tipo corretto.

Outlet with correct type

+0

Come potrei dimenticarlo. Grazie! – Krumelur

+0

BTW: C'è un modo per esporre le impostazioni personalizzabili della mia vista a IB in modo che io possa ad esempio avere il raggio dell'angolo impostato direttamente in IB? – Krumelur

+0

Io non la penso così. Penso che ottieni solo ciò che è disponibile per un semplice UIView. –

Problemi correlati