Xcode8 UIViewController.view.subviewsのframeについて(追記しました)

ビューのサイズが1000x1000になる Xcode8からStoryboardやxibでオブジェクトがframe値を持たなくなった影響で、UIViewController.view.subviewsのビューが正常なサイズを取得できなくて困るという話をよく耳にしている。 こんな感じのやつ <UIView: 0x7ff823d04e80; frame = (0 0; 1000 1000); autoresize = RM+BM; layer = <CALayer: 0x61000003dca0>> 自分もこれで困ることはあったけど、まぁ仕方ないからラクしないで修正しようか。くらいの気持ちでした。 検証した まずは通常のライフサイクルを確認する。 UIViewControllerとUIViewを拡張してログ出力するようにした。 // UIViewControllerのログ print("\(Date().description) : \(type(of: self)).\(#function):\(#line)") // UIViewのログ pri

UICollectionViewで横スクロールページングのインデックス取得

UICollectionViewでシンプルなページングする横スクロール画面を実装した時に、何番目のセルを表示中か取得しようとしたらうまくいかない状況があったのでほぼメモ。 // Before - (NSInteger)visibleIndex { NSInteger index = NSNotFound; NSArray<NSIndexPath *> *indexPaths = [self.collectionView indexPathsForVisibleItems]; NSIndexPath *indexPath = [indexPaths firstObject]; if (indexPath) { index = indexPath.row; } return index; } // After - (NSInteger)visibleIndex { NSInteger index = NSNotFound; NSArray<NSIndexPath *> *indexPaths = [sel

KH400が落としたバッフル

GWに夏休みとたくさん走ったためか、昨晩なんとなく走りたくなりKH400で出ました。 家を出て5分くらいしてからカタカタという音が聞こえたのでメットのシールドを上げて少しかがんで、やっぱり音がするなと思ったものの、そこまで気にせずに青梅街道を流して数分後、急に改造4mini(ゴリラやエイプなど)のような音が聞こえて来てミラーを見ると自分の真後ろは煙で真っ白でした。 焦って左車線へ寄りちょうど見つけたセブンイレブンに止まりマフラーを確認すると右マフラーのバッフルチューブがありませんでした。直管仕様になっていました。 実はこの数日前にバッフルチューブにグラスウールを巻きつけたところでした。この時のネジの締め付けが問題だったのだと思います。 右気筒はグラスウールを巻く前にも燃調は少し濃いめだったので大きく回さなければ走れると思いUターンをしてから再度同じ道を走ってバッフルを探しました。 バッフルは信号待ちをした地点から数十メートル先の加速した辺り、白線の近くに飛ばされていました。見つけたらすぐさまウインカーを点けヘッドライトを消して路肩に停めて、走って拾いました。 バッフ

UniversalLinksを実装した

仕事でUniversal Linksを実装することになったので検証環境を用意した。検証に使用したドメインは www.ikenie3.org 。Universal Links単体の実装というよりはHandoffとUniversal Linksの設定を同時に行っていく流れになりました。雑なので他の人が見ても意味がわからないかもしれないレベルのメモです。 作業内容 1. サーバ: https化 まず http://www.ikenie3.org をhttps化した。 が、必須ではなかったらしい。 URLがhttpsに対応している、もしくはUniversal Linksで使用するJSONファイルが署名されていることが条件ということでした。 証明書に関してはHandoffProgrammingGuideに指定の記載があります。 その際、iOSが信頼する認証局 (http://support.apple.com/kb/ht5012に列挙されている認証局)が発行した証明書とキーを、IDとして 指定します You can perform this tas

Let's Encryptの証明書を自動更新する

Let's Encryptの証明書でSSL対応を行ったので、Let's Encryptの証明書を自動更新するよう設定しました。 自動更新を行うスクリプト ScientificLinux6.6にSoftware Collectionを使用してpython2.7をインストールしたのでenvの設定が必要でした。 #!/bin/sh # # Cronから実行されるhttps証明書更新用スクリプト # # load bashrc and profiles sudo -u root -i env cd /root # try renew /usr/local/src/certbot/certbot-auto renew -q -q オプションは出力をしない設定です Silence all output except errors. Useful for automation via cron. Implies --non-interactive.