On Mar 2, 2011, at 11:37 AM, Robert Vojta wrote:

> I meant viewWillAppear/viewDidAppear, not disappear ... Sry ...

This might not work also. If the boolean parameter 'animation' in 
viewWillAppear equals NO, no animation will be started.
This is especially true when the view will appear immediately after it has been 
loaded.

Martin,
you might do the following:

In your view controller:

- (void) addButtonWithAnimation {
    [UIView transitionWithView:self.view 
                      duration:1.0
                       options:UIViewAnimationOptionTransitionCurlUp 
                    animations:^{ [self.view addSubview:self.button]; }
                    completion:NULL];
}

- (void) viewDidLoad {
    [super viewDidLoad];
    
    // Create the button:
    // ...
    
    [self performSelector:@selector(addButtonWithAnimation) withObject:nil 
afterDelay:0.0];
}

The -performSelector:withObject:afterDelay: ensures that the method 
-addButtonWithAnimation will be scheduled after the current iteration of the 
event loop finished. It appears, that within the event loop where -viewDidLoad 
is being processed no animation can be started.

Note also that -viewDidLoad is rarely the appropriate method to start 
animations, though. A view can be unloaded / loaded in cases of low memory 
events. For very simple problems, where you just want to put up a nice and 
simple animation when some view starts up, this might be ok.

This of course curls up the *container view* - that is the view controller's 
view, not the button.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to