青山の花壇 リンクを取得 Facebook × Pinterest メール 他のアプリ 7月 19, 2021 青山というと外苑のイチョウ並木が人気のようですが、青山一丁目の駅のほど近くの公園がいい感じです。イチョウ並木の花壇はクリスマスローズや野の花が多く落ち着いた感じです。こちらの花壇はずっと華やかです。近所のボランティアさんが四季折々の園芸品種の花を育てているようです。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
SwiftUIでカスタム地図を表示する(その2) 8月 16, 2021 その1ではカスタムタイルを表示しました。今度は手元で生成した情報を重ねてみます。 前回(その1) (予備知識) SwiftでPNG画像を作成する //カンバスを作る UIGraphicsBeginImageContext ( CGSize ) let context = UIGraphicsGetCurrentContext () //お絵描きをする(ぬりつぶす) context. setFillColor (fill) context. fill ( CGRect (x: 0 , y: 0 , width: 256 ,height: 256 )) //イメージオブジェクトに変換する let tileImage = UIGraphicsGetImageFromCurrentImageContext () UIGraphicsEndImageContext () //PNGに変換する tileImage?. pngData () @Ushio, "UIGraphicsBeginImageContextの無駄",Qiita SwiftでのErrorの返し方 SwiftならErrorをEnumで定義すると明確なうえ、NSErrorにもそれらしくCASTされるようだ。 中安佑一,"[Swift] Swiftのエラー処理についてざっくりとまとめてみた", DevelopersIO, Classmethod reo0612, "swiftのErrorとNSErrorの違いがよく分からないので自分なりにまとめてみた", Qiita カスタムTileOverlayを作る PUNIO, "Xamarin.iOSで地図にTileを追加したりしてみる", プログラムの事とか,Hatena Blog (実際) PUNIOさんのコードをSwiftUIに移植しただけですが import UIKit import MapKit class CustomTileOverlay : MKTileOverlay { enum TileError:Error{ case getCurrentContext } override func load... 続きを読む
SwiftUIでカスタム地図を表示する(その1) 8月 16, 2021 観光地図やらクライムマップやらもっと便利に表示したいなと。 (予備知識) SwiftUIでiOSアプリを書くには SwiftUIになって大きく変わったところがGUIの作り方。従来はstoryboardを使ってGUI部品を配置し、そのGUIを制御するUIViewをゴリゴリ書く感じでしたが、SwiftUIになって、GUI部品にレイアウトやら制御やらをまとめた感じ。 SwiftUIで地図を表示するには SwiftUIにはWKWebViewに相当するViewがないので、UIKitのWKWebViewをSwiftUI用にラップして使用する必要があります。これにはUIViewRepresentableプロトコルを使います。詳しくは 公式チュートリアル のとおり。 @k_awoki, "UIViewRepresentableを使ってSwiftUIでちょっとリッチなWebviewを表示してみる", Qiita @m37335, "【SwiftUI】Mapkitを使った位置情報の取得とピンの表示",Qiita MapKitの基本 前述のようにMapKitはUIKitで、地図上にGUI部品を載せることができる。地図上の地点に関するGUI部品のアノテーション、画像や図形のGUI部品のオーバレイが用意されている。ここでややこしいことに、GUI部品のオブジェクトと、GUI部品を表示する部品を別々に用意してやらないといけない。 中安佑一, "[Swift][iOS] 京都御所に近ければ偉いだと?! せやったらそんな”はんなり”した地図アプリ作ったろやないか! – MKMapView使い方まとめ", DeveloversIO, Classmethod タイルデータを表示するには カスタムタイルをmapViewにオーバレイする。それには、 (1) タイルオーバーレイを供給するオブジェクトを登録する。 具体的には、MKTileOverlay()を用いて、地図に重ねるタイルデータ供給オブジェクトをつくり、mapViewオブジェクトにセットする。 (2) タイルオーバーレイをレンダリングするオブジェクトをmapViewオブジェクトにセットする。 具体的には 、mapViewのdelegateオブジェクトに、mapView(_ mapVi... 続きを読む
FMLのメンバー管理コマンドの自動生成 7月 18, 2021 お仕事では、メーリングリストをFMLで運用しています。 ML管理者として登録された人は、コマンドメールを使ってリストのメンバー更新ができるのがありがたい機能。 しかしながら、このメンバー管理が曲者で、メンバーリストからメンバーを削除しても、その記録が延々と残る仕様です。このため、メーリングリストの利用期間が長くなるにつれ、メンバーリストがだんだんと太ってきます。 このため、メンバーを更新しようとしたときに、メンバーが登録もしくは削除済みなのかを目視でメンバーリストを点検して把握することが大変になってきました。 あまりに大変なので、自動チェックの Webページ をつくりました。 左上のフォームに設定したいメンバーのリスト、左下のフォームに現在のメンバーリスト(設定直前にadmin membersで取得したもの)を入力し、Generateボタンをクリックすると右側にコマンドメールに書くべきコマンドが表示されます。これをメーリングリスト名にctlをつけた宛先にメールすればよい。というものです。 (参考)perlです。 @tg=("taro@foo.com","jiro@bar.com"); #新しいメンバーリスト @cu=("ichiro@foo.com","jiro@bar.com"); #members で取得した現在のリスト sub checkAssoc { my (@ad)= @_; my (%reg)=(); foreach $ad (@ad) { $reg{$ad}=1; } return %reg; } %tg = checkAssoc(@tg);#メアドをキーとする連想配列を作る %cu = checkAssoc(@cu); @cmd=(); #----- bye ---- 現在のリストの項目のうち、新しいリストに含まれないものは削除するコマンドを追加 foreach $ad (@cu) { next if $tg{$ad}; push(@cmd,"admin bye $ad\n"); } #----- add ---- 新しいのリストの項目のうち、現在のリスト... 続きを読む
コメント
コメントを投稿