大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

KotlinとSwiftでお馴染みのアナログ時計を作る

著者:川上洋
公開日:2019/07/24
最終更新日:2019/07/24
カテゴリー:技術情報 雑記

こんにちは。川上です。

Kotlinでのアナログ時計は、時計針の回転処理がイマイチで変なままなのです。
逃避的に棚置き後回しでした。
で、Swift版のアナログ時計は、とりあえず、「Pi,Pi,Pi,Poo・・・」と日付と曜日の表示の実装できたので、一旦、オワリです。

処理は、
・吹き出しで「Pi,Pi,Pi,Poo・・・」(音無し)
・背景Image画の切り替え
・日付と曜日の表示
でした。

    // MARK: == JustClock_non
    let imgNon_1 = UIImage(named:"non_1.png")!
    let imgNon_2 = UIImage(named:"non_2.png")!
    let imgNon_3 = UIImage(named:"non_3.png")!
    let imgNon_4 = UIImage(named:"non_4.png")!
    let imgNon_5 = UIImage(named:"non_5.png")!
    var jsutCnt = 0
    var justTimer: Timer!
   var ovrBallowView :BalloonView!     //バルーン用View
    var lblPi: UILabel!

 // MARK: --- アナログ時計Timer時の各針表示更新
  func startTimeClock(_ jstOn :Bool = false) {
          // -- 現在時間の取得
        let datetpl = TotnDate.convertNSDateToYMDHMS(date: Date() as NSDate)
      ・・・
        if jstOn == true {
            // MARK: --- ジャストClock Image Update
            justClock_Non(min,sec)
  }

    // MARK: --- ジャストClock Image Update
    func justClock_Non(_ min:Int,_ sec:Int) {
        //       if min == 59 && sec == 54   //1時毎1回指定
        if sec == 54  //1分毎1回指定
        {
            print(" --- On -- justClock_Non --")
            if jsutCnt == 0 {
                justTimer = Timer.scheduledTimer(timeInterval: 1,
                                                 target: self,
                                                 selector: #selector(ViewController.justHourUpdate),
                                                 userInfo: nil,
                                                 repeats: true)
                
            }
        }
        
    }
    
    // MARK: --- Timerスケジュール Just Houre Update
    @objc func justHourUpdate() {
        print("---- 1. jsutCnt = \(jsutCnt)")
        let imgs:[UIImage] =  [imgNon_1,imgNon_2,imgNon_1,imgNon_2,imgNon_1,imgNon_2,
                               imgNon_3,imgNon_3,imgNon_3,imgNon_5]

        baseImageVw.image = imgs[jsutCnt]
        
        jsutCnt += 1
        
        // --- Pi,Pi ,Pooの表示OnOff
        if jsutCnt >= 7 {
            ovrBallowView.isHidden = false
        }
        else {
            ovrBallowView.isHidden = jsutCnt % 2 == 1 ? false : true
        }

        lblPi.text = jsutCnt >= 7 ? "Poo" :"Pi"
        
        if jsutCnt == imgs.count  {
            baseImageVw.image = baseImage
            self.justTimer.invalidate()  //Timer中止
            jsutCnt = 0
            print("---- 2. jsutCnt = \(jsutCnt)")
            ovrBallowView.isHidden = true
        }
    }

次から、Kotlinからの始末から。。かな。

ではでは。

    上に戻る