Android 8で、クイック設定タイルに開発者向けオプションの「レイアウト境界を表示」を置けるようになった

f:id:myamamic:20180124185053p:plain:w200f:id:myamamic:20180124185107p:plain:w200

設定 -> 開発者向けオプション -> クイック設定開発者用タイル -> レイアウト境界を表示 を有効にすると、クイック設定タイルの編集画面に項目があらわれて、配置できるようになる。

ほかに、

  • GPSレンダリングのプロフィール作成
  • RTLレイアウトの方向を矯正する
  • ウィンドウアニメスケール

のショートカットを、クイック設定タイルに置けます。
もしかしたら Android 7 くらいからあったのかもしれない。
あと、機種によっては無効化されていてできないかもしれない。

便利!

StoryboardでViewの縦横比を保って配置する

これはきっと常識なのだと思うのですが、今まで知りませんでした・・・

Viewに "Aspect Ratio" の制約をつけると、縦横比を保ったまま AutoLayout で配置できます。 端末の横のサイズに合わせて、比率を変えずに縦を自動的に調整したい時などに最適です。

設定方法
  1. 対象のViewを選択し、「Add New Constraints」-> 「Aspect Ratio」にチェックして制約を追加
  2. 比率は制約の「Multiplier」にて設定する (4:3とか1.3とか)

参考
1. Auto Layout の Multiplier の指定方法いろいろ - ObjecTips

Cannot load underlying module for '...'

CocoaPodsで新しいライブラリを導入した時、プロジェクトのビルド時に Cannot load underlying module for '...' というエラーが発生してビルドに失敗するときは、
プロジェクトを一度 Clean してから Build する。

your company

友人からのメールで、会社とか関係ない文脈で your company というフレーズが何回かでてきて、???となった。

Thank you for your company.
They enjoyed your company.

調べてみたら、company には「会社」以外の意味がたくさんあった。全然知らなかった。

  • (一緒に何かをする)友、仲間
  • 来客
  • 付き合い
参考

SwiftのenumをObjective-Cから使う

Int型のenumのみ利用可能、@objcをつける

Swift側

@objc public enum Animal: Int {
    case Cat = 1
    case Dog = 2
    case Hamster = 3
}

Objective-C

Animal animalType = AnimalCat;
switch (animalType) {
    case AnimalCat:
    case AnimalDog:
    case AnimalHamster:
        // 何か
        break;
}

ただし、Objective-Cのヘッダファイルで参照するのは大変そう。

参考
1. Objective-CからSwiftのenumを使う - kitoko552.memo
2. Objective-CのHeaderでSwiftのenumを使う - Qiita
3. SwiftとObjective-Cでenumの相互利用 - Qiita

XLPagerTabStrip で buttonBarMinimumLineSpacing が効かない

スクロールするタブメニューにしたかったので、XLPagerTabStripを利用。 github.com

導入は公式のGithubと、以下のサイトなどを参考にしました。

1つハマった点があり、タブとタブの間の区切り線を表現するために、以下のコードを super.viewDidLoad() の前に入れましたが、タブ間のスペースが広いままで狭くなりません。

settings.style.buttonBarMinimumLineSpacing = 0.5

解決策は、Storyboard側で設定すること。
Collection View Flow Layout -> Min Spacing -> For Cells の設定を 10 から 0.5 に変えたら、期待する表示になりました。