タグ

ブックマーク / ken-plus.blogspot.com (6)

  • iOS7対応: iOS6/7 delta

    iOS7ではStatusBar、NavigationBarとアプリのViewがオーバラップして表示されるため、Xcode5のstoryboardで配置したViewの位置がiOS6/7で違ってしまう。 ViewのframeのルートViewに対するframe.origin.yの値が0の場合、iOS6ではStatusBar、NavigationBarの下に配置されるが、iOS7ではスクリーンの左上に配置される。 autolayoutの場合は調整してくれるようだが、そうでない場合は調整が必要になる。 Interface BuilderのサイズインスペクタにあるiOS6/7 deltaで行うことができる。 Xcode5ではこまめ表示/非表示ができるので、上のキャプチャーの少し上にあるViewのhideをクリックすると、この部分がすっかり隠れてしまいます。 iPhoneUITableViewでは、i

    iOS7対応: iOS6/7 delta
    efcl
    efcl 2013/09/14
    "iOS7ではStatusBar、NavigationBarとアプリのViewがオーバラップして表示されるため、Xcode5のstoryboardで配置したViewの位置がiOS6/7で違ってしまう" autolaytoutと手動の解決
  • PDFサムネイル表示例

    efcl
    efcl 2013/08/12
    PDFのサムネイルを作る方法
  • uncaught exceptionのstackのアドレスをシンボル表示する方法

    たまにstackのアドレスだけがありシンボル表示がなく、どこで発生しているエラーかわからないメッセージで終了することがあります。 2013-06-08 14:27:49.160 Test[29884:11303] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM removeObjectAtIndex:]: index 1 beyond bounds [0 .. 0]'

    uncaught exceptionのstackのアドレスをシンボル表示する方法
    efcl
    efcl 2013/06/09
    スタックトレースをログ出力する
  • iOS 6 UINavigationControllerのAutorotate

    iOS6ではshouldAutorotateToInterfaceOrientation:メソッドが廃止され、代わりにsupportedInterfaceOrientationsメソッドとshouldAutorotateメソッドを使うようになっています。 ところが最初のViewControllerをUINavigationControllerにしているアプリでは、他のViewControllerにこれらのメソッドを実装しても有効になりません。(shouldAutorotateが呼ばれない。) このようなアプリの場合は次のようにすると回転を制御できるようになります。 UINavigationControllerのサブクラスを作り、起動時のUINavigationControllerのクラスをそれに替える。 上記サブクラスにsupportedInterfaceOrientationsメソッドと

    iOS 6 UINavigationControllerのAutorotate
    efcl
    efcl 2012/09/22
    iOS6でshouldAutorotateToInterfaceOrientation:がDeprecatedになった。回転に対応したアプリを作るには
  • exit()使うべからず

    exit(0)を使う例が見つかりますが、クラッシュした状況と同じ状況となるため、使用すべきではないと勧告されています。これを守らいないと、やたらとクラッシュするということで、AppStore承認が得られなくなることもあるようです。 アプリ終了はiOSのコントールに委ね、アプリ側ではUIAppilicationデリゲートメソッドで然るべき対処を行う、というのが適切な実装というこのになります。 //ホームボタンが押されたときにトップページに戻しておく方法

    efcl
    efcl 2012/05/01
    ホームボタンが押されたときにトップページに戻す
  • NSString定数の定義

    Cocoaから事例をひとつ取り上げてみます。 ヘッダファイルNSBundle.hに次の行があります。 FOUNDATION_EXPORT NSString * const NSLoadedClasses; FOUNDATION_EXPORTはobjc_runtime.hでマクロ定義されており、Objective-Cの場合はexternとなります。(実際は#ifで場合分けされています。) #define FOUNDATION_EXTERN extern #define FOUNDATION_EXPORT  FOUNDATION_EXTERN 上記の例の場合はNSBundle.mで変数NSLoadedClassesが宣言、定数設定されます。 NSString * const NSLoadedClasses=@"NSLoadedClasses"; これにより、NSBundle.hをimportす

    NSString定数の定義
    efcl
    efcl 2012/05/01
    文字列定数について。 externを使ったグローバルな定数。 constとdefineでの違い
  • 1