【问题标题】:UIView animates away on TimerUIView 在 Timer 上动画
【发布时间】:2014-08-01 18:48:54
【问题描述】:

所以有一个UITextField,我在该字段上的字符数有限制。如果用户尝试输入更大的内容,则会出现UIView。我已经把那部分动画化了。这是我所拥有的:

public void animateHoursMesg() {

    var HoursMesgExpandPos = new PointF (248.0f, 273.0f);
    var HoursMesgInitPos = new PointF (400.0f, 273.0f);
    UIView.Animate (
        duration: 0.3f,
        delay: 0,
        options: UIViewAnimationOptions.CurveEaseInOut,
        animation: () => {
            if (Flag_HoursMesg) {
                view_HoursLimitMesg.Center = HoursMesgInitPos;
                Flag_HoursMesg = false;
            } else {
                view_HoursLimitMesg.Center = HoursMesgExpandPos;
                Flag_HoursMesg = true;
            }
        },
        completion: () => {
        }
    );
}

问题是我希望这个视图在它出现 5 秒后动画化。

有人可以帮我解决这个问题吗?

感谢您的宝贵时间。

【问题讨论】:

    标签: ios uiview xamarin.ios xamarin


    【解决方案1】:

    在 animate 方法的完成块中,使用 NSTimer 安排块在 5 秒后执行。

    [NSTimer scheduledTimerWithTimeInterval:5.0
                                     target:self
                                   selector:@selector(animateAway)
                                   userInfo:nil
                                    repeats:NO];
    

    然后只需为 animateAway 创建另一个方法来反转您之前的动画。

    【讨论】:

    • 我从你的回答中得到了这个想法。只是有点不同。 NSTimer.CreateScheduledTimer(5.0f, animateAwayHoursMesg); 谢谢。
    【解决方案2】:

    在动画的完成块中,您可以运行不同的动画以将视图动画化,延迟 5 秒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多