Tips

    • presentViewControllerが異常に遅いバグ

      TableViewのセルが選択された時のイベントUITableViewDelegate#tableView:didSelectRowAtIndexPath:の中でUIViewController#presentViewController:animated:compl…

    • NSDateとタイムゾーンについて理解する

      今さら聞けないNSDateとタイムゾーンの関係について。国際対応を考えた時、タイムゾーンについてきちんと理解する必要があります。ウェブプログラマからアプリプログラマにコンバートした方の多くは問題ないでしょうが、アプリの開発から始める人もたくさんいるでしょうし、タイムゾーンでハマる…

    • NSDateから年月日時分秒を得る

      NSDateはGMTで日時を管理していて、タイムゾーンが考慮される年月日時分秒を得るメソッドは存在しません。これらを得たい場合はNSCalendarを使います。NSDate *date = ; NSCalendar *calendar = ; NSDateComponent…

    • 現在の言語を取得する

      OSの言語設定を得るNSLocale *locale = ;日本語に設定されているが、日本語のリソースがない場合、他の優先言語が使われることになる。その時でも上記は日本語のLocaleオブジェクトを返す。現在参照しているリソースの言語(NSLocalizedStringで取…

    • 日時表示を多言語対応する

      Dateオブジェクトから日時の文字列を得るにはDateTimeFormatterを使います。ここまでは知っている方も多いと思います。ただし多言語対応(ローカライズ)を考えるなら以下の様な方法は望ましくありません。NSDate *date = ; NSDateFormatter…

    • 端末のサイズごとにViewのConstraintを変更する

      前回のつづき。特定のSize ClassごとにConstraintを設定する方法も、前回のViewの表示・非表示とほとんど変わりません。説明の前に前回書いたのと同じ内容ですが、この記事から見始めた人のためにもう一度書きます。Storyboardの下部にあるボタンをSize…

    • 端末サイズごとにViewの表示を変更する

      前回はSize Classesについて説明しました。Interface Builder(以下、IB)上で、特定のSize ClassでのみViewを表示したり、Constraintを変更したりできます。これによりプログラムを書かなくても、複数端末で表示状態を変更することができま…

    • Size Classesとは

      今やiOSもさまざまな端末のサイズがあり今後も増えるかもしれません。Interface Builderもそれに対応してSize Classesという概念が導入されました。Compact、Regularという表現でサイズを抽象化Size Classesとは端末のサイズを抽象化し…

    • iOS 7に適したデザインで作る その5 - まとめ

      前回のつづきガイドラインにそって今まで説明してきました。一点だけ解説していない箇所があってそれは「Use Depth to Communicate」の項です。これは階層的表現で画面ごとの関連性をユーザーにわかりやすくといった趣旨の話です。ただ、これはセンスが必要なことで、なかな…

    • iOS 7に適したデザインで作る その4 - 文字と背景の色

      前回のつづきiOS 7からはボタンもデフォルトでは文字だけになりました。それも踏まえて文字や背景の色の使い方について考え直す必要があると思います。ガイドラインを元に書きまとめたいと思います。文字に色をつけるまず基本は文字は黒にして、背景は白、もしくは文字が読みやすい色に留め…