在 Xamarin 中使用 transitionWithView 设置 UIView.Hidden 属性时淡化动画

Posted

技术标签:

【中文标题】在 Xamarin 中使用 transitionWithView 设置 UIView.Hidden 属性时淡化动画【英文标题】:Fade animation when setting UIView.Hidden property with transitionWithView in Xamarin 【发布时间】:2016-05-20 17:02:08 【问题描述】:

我正在尝试在我的解决方案中翻译this code,以使视图在单击时优雅地淡出:

[UIView transitionWithView:button
     duration:0.4
     options:UIViewAnimationOptionTransitionCrossDissolve
     animations:NULL
     completion:NULL];

button.hidden = YES;

但我在 Xamarin 中的 UIView 下找不到 transitionWithView 的等价物,有人可以建议吗?

我尝试了这个不同的动画,但它没有提供溶解的选项:

UIView.SetAnimationTransition(UIViewAnimationTransition.CurlDown, button, true);

【问题讨论】:

【参考方案1】:

设置 hidden 属性只会隐藏 UIView。您可以使用以下代码为您的视图设置动画,并在动画完成时使用回调执行逻辑。

UIView.Animate (2, 0, UIViewAnimationOptions.CurveLinear,
    () => 
       button.Alpha = 0.0f;
    ,
    () => 
      // animation complete logic 
    
);

上面的代码将在 2 秒内淡出按钮视图,使用线性曲线延迟 0 秒。

【讨论】:

【参考方案2】:
UIView.Transition(button, 0.4, UIViewAnimationOptions.TransitionCrossDissolve, null,
  () =>  
    button.Hidden = true; 
); 

UIKit.UIView.Transition

参考:https://developer.xamarin.com/api/member/UIKit.UIView.Transition/p/UIKit.UIView/System.Double/UIKit.UIViewAnimationOptions/System.Action/System.Action/

【讨论】:

以上是关于在 Xamarin 中使用 transitionWithView 设置 UIView.Hidden 属性时淡化动画的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色

是否可以在 Xamarin 表单中使用图像集

在 Xamarin.Forms 中使用 Android 绑定

为啥我应该在 Xamarin 中使用可移植类库?

如何在 Xamarin 中使用 DLLIMPORT?

如何在 Xamarin 中使用 Google Map id?