2012-02-18 8 views
6

Dodałem do swojego rozwiązania XIB na podstawie UIViewController i przeciągnąłem do niego trochę UIViews. Teraz chcę niektóre z poglądów nie być UIView, ale RoundedRectView (https://github.com/Krumelur/RoundedRectView), który dziedziczy po UIView.Jak używać niestandardowej podklasy UIView w edytorze XIB z Monotouch?

Jak to osiągnąć? Próbowałem zmienić klasę w programie Interface Builder, ale nic to nie dało. Następnie ręcznie zmodyfikowałem plik designer.cs, ale spowodowało to awarię. Potem próbowałem modyfikować fałszywy kod ObjC, ale to też się nie udało.

(Używam Xcode 4.2 i MD 2.8.6.4)

Odpowiedz

8

Państwa zdanie podklasa potrzebuje co najmniej dwie rzeczy:

  1. atrybutów Rejestracja

    [Register("MyView")]

    public class MyView : UIView {}

  2. IntPt r konstruktor

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

Następnie otwórz XIB w interfejsie Builder dodać UIView i ustawić jego klasie w Identity Inspector opis, który przeszedł do atrybutu zarejestrować. Po podłączeniu go do gniazdka zobaczysz, że ma on właściwy typ.

Outlet with correct type

+0

Jak mogę o tym zapomnieć. Dzięki! – Krumelur

+0

BTW: Czy istnieje sposób na ujawnienie konfigurowalnych ustawień mojego widoku na IB, tak żebym mógł na przykład mieć ustawiony promień narożnika bezpośrednio w IB? – Krumelur

+0

Nie sądzę. Myślę, że dostajesz tylko to, co jest dostępne dla zwykłego UIView. –