项目中一般都会出现倒计时读秒的场景。下面记录一下简单的实现。
// 倒计时60s
private int _countDown = 60;
// 倒计时计时器
private NSTimer _timer;
/// <summary>
/// 开启倒计时动画
/// </summary>
private void StartCountDown()
{
_timer = NSTimer.CreateScheduledTimer(1, this, new Selector("onTimer:"), null, true);
_timer.Fire();
_isCountDown = true;
}
[Export("onTimer:")]
public void onTimer(NSTimer timer)
{
if (_countDown > 0)
{
_countDown = _countDown - 1;
Btn.SetTitle(_countDown + "s", UIControlState.Normal);
}
else {
Btn.SetTitle("重新发送", UIControlState.Normal);
// 倒计时结束 结束动画
timer.Invalidate();
_countDown = 60;
}
}
使用时直接调用StartCountDown()方法即可。
上面是针对Xamarin.iOS平台的倒计时方式,还有一种:
如果你使用的是MVVMCross框架的话,可以把倒计时对象放入VIewModel层,让Button绑定数据,实现自己刷新的功能。