Re: Advice on building a complex user custom control
Re: Advice on building a complex user custom control
- Subject: Re: Advice on building a complex user custom control
- From: douglas welton <email@hidden>
- Date: Mon, 2 Mar 2009 13:21:55 -0500
Oliver,
Have you considered using CALayers and Core Animation to model the
elements of your MapView Control? That's the direction I would go in,
if this were my project.
regards,
douglas
On Mar 1, 2009, at 8:22 PM, Oliver Charles wrote:
Hi,
I've started learning Objective-C and Cocoa, and while I'm fairly
experienced with programming, GUI programming is quite new to me.
I'm working on a small game engine, and as such, I want to create a
level editor for the game. I love the old style Doom level editors, so
that's what I'm going for [1]. Notice in that screenshot the amount
the user can interact with - moving vertices on the grid, creating
lines between vertices, adding/removing objects, etc.
At the moment, I have a main MapView control, which creates vertices
in an NSArrayController. I have 2 ways of viewing these vertices - one
is to handle rendering them directly in the MapView, and another
approach creates a new VertexView for each vertex, and adds it as a
subview of the MapView. From what I've read online, this is not going
to scale beyond maybe 50 vertices, so I don't think this is an
approach. However, handling *everything* in the MapView itself feels
like it drastically reduces the cohesion of the control.
How do people create controls like this? I suppose similar controls
(to a slightly lesser extent, may be helpful if you don't understand
the screenshot below) would be things like OmniGraffle and the Core
Data editor in Xcode.
--
Oliver Charles / aCiD2
[1]: http://www.doombuilder.com/img/builder_screen1.gif
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden