1
votes

I have an object that is a subclass of UIView that can be added to a view hierarchy as a subView. I want to be able to remove the UIView from its superView and add it as a subView of the main window and then expand to full screen.

Something along the lines of:

// Remove from superView and add to mainWindow
[self retain];
[self removeFromSuperView];
[mainWindow addSubView:self];

// Animate to full screen
[UIView beginAnimations:@"expandToFullScreen" context:nil];
[UIView setAnimationDuration:1.0];
self.frame = [[UIScreen mainScreen] applicationFrame];
[UIView commitAnimations];

[self release];

Firstly am I on the right lines? Secondly, is there an easily way for the object to get a pointer to the mainWindow?

Thanks

Dave

2
to answer your second question: UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow];Felix

2 Answers

3
votes

You could use window property of the view

self.window
2
votes

Looks good. But you might want to convert the view's frame from its superview coordinate system to the window's coordinate system, before beginning the animation. Otherwise the animation will not be smooth.