如何动态更改NSTimer的timeInterval?

时间:2017-05-18 08:46:42

标签: ios objective-c

NSTimer的timeInterval是readOnly,我们无法直接更改它。有什么方法可以做到吗?

1 个答案:

答案 0 :(得分:1)

因为NSTimer的timeInterval是readOnly所以我们不能直接更改它。 更改timeInterval的方法是重新定义计时器,例如:

      string sj;
    void calculaer()
    {
        try
        {
            if (String.IsNullOrEmpty(mtb_SALAIR02.Text)) return;
            mtb_SALAIR02.Text = string.Format("{0:#,###,##0.00}", decimal.Parse(mtb_SALAIR02.Text));
            sj = (decimal.Parse(mtb_SALAIR02.Text, CultureInfo.CurrentCulture) / 30).ToString();
            mtb_SJ02.Text = string.Format("{0:#,###,##0.00}", decimal.Parse(sj));

            if (String.IsNullOrEmpty(mtb_SJ02.Text)) return;
            mtb_SJ02.Text = string.Format("{0:#,###,##0.00}", decimal.Parse(mtb_SJ02.Text));
            sj = (decimal.Parse(mtb_SJ02.Text, CultureInfo.CurrentCulture) * decimal.Parse(mtb_NJ02.Text)).ToString();
            mtb_SM02.Text = string.Format("{0:#,###,##0.00}", decimal.Parse(sj));

            if (String.IsNullOrEmpty(mtb_SM02.Text)) return;
            mtb_SM02.Text = string.Format("{0:#,###,##0.00}", decimal.Parse(mtb_SM02.Text));
            sj = (decimal.Parse(mtb_SM02.Text, CultureInfo.CurrentCulture) - decimal.Parse(mtb_AVANCE02.Text) + decimal.Parse(mtb_RELQ02.Text)).ToString();
            mtb_NETPAIE02.Text = string.Format("{0:#,###,##0.00}", decimal.Parse(sj));

            if (String.IsNullOrEmpty(mtb_NETPAIE02.Text)) return;
            mtb_NETPAIE02.Text = string.Format("{0:#,##0,0#0.00}", decimal.Parse(mtb_NETPAIE02.Text));

            taxe_calc();


            sj = (string.IsNullOrEmpty(mtb_NETPAIE02.Text)? 0M: decimal.Parse(mtb_NETPAIE02.Text, CultureInfo.CurrentCulture)) + (string.IsNullOrEmpty(mtb_TAXE02.Text)? 0M: decimal.Parse(mtb_TAXE02.Text)).ToString();
            mtb_SAL_TAX02.Text = string.Format("{0:#,###,##0.00}", decimal.Parse(sj));
        }
        catch (Exception)
        {
            return;
        }
    }