Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use custom UIView subclass in XIB editor with Monotouch?

I have added a XIB based UIViewController to my solution and dragged some UIViews into it. Now I want some of the views not to be UIView but RoundedRectView (https://github.com/Krumelur/RoundedRectView) which inherits from UIView.

How to achieve this? I tried to change the class in Interface Builder but that did nothing. Then I manually modified the designer.cs file but that resulted in a failure. Then I tried modifying the fake ObjC code but that failed too.

(I'm using Xcode 4.2 and MD 2.8.6.4)

like image 369
Krumelur Avatar asked Feb 18 '12 22:02

Krumelur


People also ask

How do I create a custom view in Swift?

Creating Custom Views programatically. Open Xcode ▸ File ▸ New ▸ File ▸ Cocoa Touch class ▸ Add your class name ▸ Select UIView or subclass of UIView under Subclass of ▸ Select language ▸ Next ▸ Select target ▸ Create the source file under your project directory.


1 Answers

Your view subclass needs at least two things:

  1. Register attribute

    [Register("MyView")]

    public class MyView : UIView {}

  2. IntPtr constructor

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

You then open the XIB in Interface Builder, add a UIView and set its Class in the Identity Inspector to the name you passed to the Register attribute. When you connect it to an outlet, you will see that it has the correct type.

Outlet with correct type

like image 179
Dimitris Tavlikos Avatar answered Oct 05 '22 23:10

Dimitris Tavlikos