• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iphone - 为 UIView 更改设置动画,其中 UIView 完全重建

[复制链接]
菜鸟教程小白 发表于 2022-12-13 14:13:19 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的 UIViewController 获取它所控制的 View 以完全重建自己,如下所示:

[self.view rebuildYourself:bIsLandscape]; // this line is in the ViewController

View 本身包含以下方法:

-(void)rebuildYourselfBOOL)isLandscape
{
    NSArray *viewsToRemove = [self subviews];
    for (UIView *v in viewsToRemove) {
        [v removeFromSuperview];
    }

    [self addControls]; // adds lots of views
    [self layoutControlsWithOrientation:isLandscape]; // frames the views

}

我想为整个过渡设置动画。我试过这个:

[UIView animateWithDuration:1.0
                      delay:0.0
                    options:UIViewAnimationOptionTransitionCurlUp
                 animations:^{
                             [self.view rebuildYourself:bIsLandscape];
                         }
                 completion:^(BOOL finished){

                         }];

但是动画忽略了UIViewAnimationOptionTransitionCurlUp的options值,每次都是从左上角流入。

我已经试过了:

[UIView beginAnimations"kkk" context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
[UIView setAnimationDuration:1.0];
[self.view rebuildYourself:bIsLandscape];
[UIView commitAnimations];

但在这种情况下,过渡确实可以很好地 curl ,但在过渡完成之前底层 View 是空白的,然后新 View 突然“弹出”到 View 中,这破坏了过渡的效果。

谁能告诉我为 View 完全重建自身的过渡设置动画的正确/最佳方式?

谢谢



Best Answer-推荐答案


制作两个 View 并将旧 View 放在新的重建 View 之上。然后“ curl ”旧 View ,以便显示新 View 并从内存中删除旧 View 。

关于iphone - 为 UIView 更改设置动画,其中 UIView 完全重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11032437/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap