Android, iOSのジオフェンシング機能を調べた

メモ AndroidもiOSも、同時に登録できるジオフェンス数は多くない(Android: 100件、iOS: 20件)。多数のジオフェンスを登録したい場合は工夫が必要。 案 ユーザーの進路に合わせて遠ざかったポイントを削除、近づいたポイントを追加 ジオフェンススポットを…

iOS11でnavigationItem.titleViewにセットしたViewの表示位置がずれる

iOS

guard let width = navigationController?.navigationBar.frame.size.width, let height = navigationController?.navigationBar.frame.size.height else { return } // NavigationBarのほぼ幅いっぱいに表示する(ただし少し余白はできる) let rect = CGRe…

Stringの末尾の改行コードを削除したい

String#replace()でやろうとしたけれど、改行コード3つ(\r, \n, \r\n)を書くのやだなーと思い調べた。 そうしたら、trim()で削除される文字に改行コードもふくまれることを知った。 String (Java Platform SE 8) trim()の説明では、「空白」とは文字コードが…

warning: Auto Layout Localization: Fixed leading and trailing constraints with a center constraint may cause clipping.

iOS

Xcode9.1で、storyboardでこんな警告がでた。 warning: Auto Layout Localization: Fixed leading and trailing constraints with a center constraint may cause clipping. 「センター揃えの制約と一緒に、固定のleading/trailingの制約をつけると見切れち…

Realm Objective-CをSwiftから使うときに、NSNumber?なプロパティの初期値をnilにできない

RLMObjectを継承したモデルクラスでNSNumber?のプロパティを用意し、「値:なし」を表現したいので、初期値はnilとしました。 (Objective-Cからも使いたいので、Int?にはできない) public class MyData: RLMObject { @objc dynamic var myValue: NSNumber? …

フォーム作成ライブラリのEurekaで、セクションのヘッダーとフッターを表示しない

iOS

iOSでのフォーム作成ライブラリのEureka、とても便利に使っています。 github.com 普通に Section を追加すると上下にスペースができるのですが、以下のように設定すると、ヘッダーとフッターのスペースをなくせます。 form +++ Section() { // ヘッダー/フ…

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

設定 -> 開発者向けオプション -> クイック設定開発者用タイル -> レイアウト境界を表示 を有効にすると、クイック設定タイルの編集画面に項目があらわれて、配置できるようになる。 ほかに、 GPSレンダリングのプロフィール作成 RTLレイアウトの方向を矯正…

UIStackViewで左からではなく右から並べる

iOS

swift - How do you right align a horizontal UIStackView? - Stack Overflow ここで回答されているように、UIStackViewのAttribute Inspectorで、ViewのSemanticを Force Right to Left に設定する 回答にもあるように、これは正しい使い方ではないかもし…

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

iOS

これはきっと常識なのだと思うのですが、今まで知りませんでした・・・ Viewに "Aspect Ratio" の制約をつけると、縦横比を保ったまま AutoLayout で配置できます。 端末の横のサイズに合わせて、比率を変えずに縦を自動的に調整したい時などに最適です。 設…

Cannot load underlying module for '...'

iOS

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から使う

iOS

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 AnimalHamst…

XLPagerTabStrip で buttonBarMinimumLineSpacing が効かない

iOS

スクロールするタブメニューにしたかったので、XLPagerTabStripを利用。 github.com 導入は公式のGithubと、以下のサイトなどを参考にしました。 [Swift3.1] ライブラリ「XLPagerTabStrip」の使い方(導入) - Qiita XLPagerTabStripの使い方とカスタマイズ …