gpt4 book ai didi

ios - 使用 transitionWithView 同时显示和隐藏

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:48 26 4
gpt4 key购买 nike

我已经尝试了以下几种变体,但都无济于事。我想要的是一个显示一些东西的向下 curl 过渡,然后是一个相反的向上 curl 过渡。有透明度,所以效果是一个清晰的东西在 View 上滚动。这是在上卷和下卷时调用的函数:

-(void) setVisibility:(BOOL)isVisible animated:(BOOL)animated{    
if (isVisible){
self.topFold.hidden = YES;
}
[UIView transitionWithView:self
duration:1.0f
options:isVisible ? UIViewAnimationOptionTransitionCurlDown : UIViewAnimationOptionTransitionCurlUp
animations:^{
self.imageView.hidden = !isVisible;
self.background.hidden = !isVisible;
self.bottomCornerFold.hidden = !isVisible;
}
completion:^(BOOL finished){
if (!isVisible){
self.topFold.hidden = NO;
}
}
];
}

我已经尝试了十亿种不同的场景,但这个是最接近的。但问题是,当它以 isVisible = YES 运行时,topFold 在转换完成之前保持可见。也就是说,新的东西在它上面滚下来,就好像有一个 View 的副本,新的东西在上面。然后一旦完成,它就会用正确的版本替换整个内容。
澄清一下,我试图在任何动画开始之前隐藏 topFold 但由于某种原因它坚持要等到动画完成。会喜欢这里的指针。

最佳答案

从笨拙但有效的部门,我嵌套了两个动画,一个在另一个的完成 block 中。看起来像这样并且有效:

 [UIView transitionWithView:self 
duration:0.0f
options:nil
animations:^{
if (isVisible){
self.topFold.hidden = YES;
}
}
completion:^(BOOL finished){
[UIView transitionWithView:self
duration:1.0f
options:isVisible ? UIViewAnimationOptionTransitionCurlDown : UIViewAnimationOptionTransitionCurlUp
animations:^{
self.imageView.hidden = !isVisible;
self.background.hidden = !isVisible;
self.bottomCornerFold.hidden = !isVisible;
}
completion:^(BOOL finished){
if (!isVisible){
self.topFold.hidden = NO;
}
}
];
}
];

关于ios - 使用 transitionWithView 同时显示和隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11748031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com