使用iphone sdk复制safari选项卡视图切换功能

时间:2010-04-25 05:21:50

标签: iphone cocoa-touch iphone-sdk-3.0 mobile-safari

我想复制移动版Safari选项卡功能中的视图切换功能。我已经实现了包含视图截图的scrollview,但是,当选择一个视图时,我将如何复制缩放动画以及出现的标题和工具栏,反之亦然?

1 个答案:

答案 0 :(得分:0)

我找到了答案,所以我将分享。

- (void)clickHandler{

// create an image that looks exactly like 
// the preview image in your scroll view (can leave off the toolbar/statusbar if you like)
UIImage *img = [UIImage imageNamed:@"something.png"];

// create an imageview to hold the image
UIImageView *iv = [[UIImageView alloc] initWithImage:img];

// ensure that the frame is set so that it's directly over the image in your scrollview
iv.frame = CGRectMake(60, 150, 200, 200);

// push the image into the superview over top this controller's view
[[self.view superview] insertSubview:iv aboveSubview:self.view];

// refresh superview NOW
[[self.view superview] performSelectorOnMainThread:@selector( setNeedsDisplay ) withObject:nil waitUntilDone:YES];

//-----------
//animate the image to bring it from it's "scrollview size" to the size it will be after the transition.

[UIImageView beginAnimations:nil context:nil];
[UIImageView setAnimationDuration:0.3];

iv.frame = CGRectMake(0, 65, 320, 371);

[UIImageView commitAnimations];

//-----------   

// transition to the new view using the CrossDissolve transition (or just don't animate it.)
NewViewController *controller = [[NewViewController alloc] initWithNibName:@"NewView" bundle:nil];
controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:controller animated:YES];
[controller release];

// set the animated imageview to remove itself after a delay 
// (after the new view is transitioned into place below it.)
[iv performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:0.3];

// be sure to release where needed and all that, I may have cut too much from the code for this snippet.
// this may not be the best example, but it does work.
// please post any improvements back so that we can all benefit

}