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

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

Widget作成メモ(3)ーWidgetSmallビューの編集

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

こんにちは、川上です。

Widget窓に色々と表示させるために、色々とNet湾で参照していくると、追々と解ってきた感じの模様かな。。。
ココの言語エリアは、SwiftUIで、Swift5ですw。

SwiftUIのコーディングや表示動作をみていると、
へー、ホゥー、フーンやハテやナゾが色々出てくるけど、結構、面白そーですよ
そのうち、使っていると、なんとかなるでしょう。

先ずは、Widget窓に、日付と曜日を表示しようとしました。

Dateの年月日時間や曜日等のデータ値を取得はじめですwネ。
この辺は、あちこちで結構使うので、I/Fにしました。

Widgetプロジェクト側に
[New File..] – [Swift]で、CF_Lib5.swiftの作成。
で、その時に、
「MiniClock_WidgetExtension」にチェックしておきます。

import UIKit

// MARK: - +++ UIKit U/I +++ CFLib_Mgr()
class CFLib_Mgr {
    // MARK: +++ 曜日表示
    static func getTodayString() -> String {
      
        let weekDays:[String] = ["(日)","(月)","(火)","(水)","(木)","(金)","(土)"]
        let today = Date()
        let day_tpl = CF_Lib.convertNSDateToYMDHMS_Weekday(date:today as NSDate)
        let weedstr = weekDays[day_tpl.weekday]
        let daystr = String(format: "%d/%d%@", day_tpl.mth,day_tpl.day,   weedstr)
      
        return daystr
    }
 }

// MARK: - +++ UIKit U/I +++ CF_Lib()
struct CF_Lib {
    // MARK: +++ Dateの年月日時間値データを取得する
    static func convertNSDateToYMDHMS_Weekday (date: NSDate) -> (yy:Int,mth:Int,day:Int,hh:Int,min:Int,sec:Int,weekday:Int) {
        let gcal = NSCalendar(identifier: NSCalendar.Identifier.gregorian)!
        let flags : NSCalendar.Unit = [NSCalendar.Unit.year
            ,NSCalendar.Unit.month
            ,NSCalendar.Unit.day
            ,NSCalendar.Unit.hour
            ,NSCalendar.Unit.hour
            ,NSCalendar.Unit.minute
            ,NSCalendar.Unit.second
            ,NSCalendar.Unit.nanosecond
            ,NSCalendar.Unit.weekday]
        let dComp = gcal.components(flags, from: date as Date)
        let lYYY = dComp.year //as! Int
        let lMM   = dComp.month //as! Int
        let lDD   = dComp.day //as! Int
        let lHH   = dComp.hour //as! Int
        let lMINI   = dComp.minute //as! Int
        let lSEC   = dComp.second //as! Int
        let lweekday = dComp.weekday! - 1 // [ "日", "月", "火", "水", "木", "金", "土"]のindex
        
        return (yy:lYYY!,mth:lMM!,day:lDD!,hh:lHH!,min:lMINI!,sec:lSEC!,weekday:lweekday)
        
    }
 }

で、I/Fができたのでした。

ここから、Widget窓の編集が始まるのです。。

ではでは。

    前の記事 :
    上に戻る