HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Tweetbot就像缩小视图转换一样大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有谁知道如何实现当前视图控制器的视图缩小并在透明度上放置另一个视图?当您点击导航栏@L_673_1@的头像时,可以在Tweetbot 3中实现.我应该拍快照吗?

The Tweetbot transition I mean http://www.yoeri.me/files/tweetbot-transition.gif

解决方法

为了实现此效果,您必须从头开始重建视图堆栈.

因为没有可能改变viewController.view的框架,你必须添加一种容器子视图,如下所示:

@implementation ViewController
@synthesize container;

- (void)viewDidLoad {
    [super viewDidLoad];

    container = [[UIView alloc] initWithFrame:self.view.frame];
    [self.view addSubview:container];
    // add all views later to this insted of self.view

    // conTinue viewDidLoad setup
}

现在,如果你有这个,你可以像这样动画缩小的行为:

[UIView animateWithDuration:.5 animations:^{
        container.frame = CGRectMake(10,17,self.view.frame.size.width-20,self.view.frame.size.height-34);
    }];

好吧,我假设您正在为iOS 7开发,所以我们将在这里使用一些新的API(对于早期版本,有替代框架).现在,自WWDC UIView获得resizableSnapshotViewFromRect:(CGRect)afterScreenupdates:(BOOL)withCapInsets:(UIEdgeInsets)方法返回单个UIView对象.

[UIView animateWithDuration:.5 animations:^{
        container.frame = CGRectMake(10,self.view.frame.size.height-34);
    } completion:^(BOOL finished) {
        UIView *viewToBlur = [self.view resizableSnapshotViewFromRect:container.frame afterScreenupdates:YES withCapInsets:UIEdgeInsetsZero];   
    }];

如果您不想重写视图管理,您还可以首先以这种方式拍摄主视图的快照,将其设置为容器,然后仅为图像设置动画.但请记住,您无法与捕获的视图进行交互.

当你有了这个,你可以从this repo下载两个类别文件(它们来自WWDC,所以直接来自Apple!).基本上,他们所做的是,他们为UIView类添加了一些很酷的新方法,我们将使用applyDarkEffect.我没有测试过这个,或许另一种方法可以更好地满足您的需求.

无论如何,如果我们将其实现到块中并且还可以添加UIImageView来显示模糊的叠加层,它应该看起来像这样

[UIView animateWithDuration:.5 animations:^{
        container.frame = CGRectMake(10,self.view.frame.size.height-34);
    } completion:^(BOOL finished) {
        UIView *viewToBlur = [self.view resizableSnapshotViewFromRect:container.frame afterScreenupdates:YES withCapInsets:UIEdgeInsetsZero];
        UIImage *image = [viewToBlur applyDarkEffect];
        UIImageView *blurredView = [[UIImageView alloc] initWithFrame:self.view.frame];
        [self.view addSubview:blurredView];

        // optionally also animate this,to achieve an even smoother effect
        [blurredView setImage:image];

    }];

然后,您可以在堆栈顶部添加SecondViewController的视图,以便仍然可以调用它的委托方法.传入帐户视图的跳出效果可以通过新的UIView动画方法animateWithDuration:(NSTimeInterval)延迟:(NSTimeInterval)usingSpringWithDamping:(CGFloat)initialSpringVeLocity:(CGFloat)选项:(UIViewAnimationOptions)动画:^(void)动画完成:^(BOOL完成)完成(更多关于documentation)

我希望这能帮助你完成你的项目.

大佬总结

以上是大佬教程为你收集整理的ios – Tweetbot就像缩小视图转换一样全部内容,希望文章能够帮你解决ios – Tweetbot就像缩小视图转换一样所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。