iOS
揮発型のIDの種としてUUIDを生成する // UUIDを生成する + (NSString*) createUUID { CFUUIDRef obj = CFUUIDCreate(kCFAllocatorDefault); NSString* uuid = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, obj); CFRelease(obj); …
NSStringの文字列からダイジェストを計算とか普通によくやる処理だけど、別に難しくもなんともなくて、CommonDigest.hの中のメソッドを呼ぶだけ。 #import <CommonCrypto/CommonCrypto.h> u_char digest[CC_MD5_DIGEST_LENGTH]; const char* srcbytes = [@"ソース" UTF8String]; CC_MD5(sr</commoncrypto/commoncrypto.h>…
設定アプリの、メールやTwitterやFacebookのアカウント設定画面を参考に、ログイン画面のインターフェースを作ってみた。 GroupedなStyleのUITableViewに、labelとUITextFieldのカスタムCellと、ボタンのカスタムセル。 最初のTextFieldでリターンが押された…
UITextFieldとかで入力中に端末をシェイクしたらキャンセルできるようにする機能があるが、正直なところ、普段の入力中にそんなアホな動作はしないと思うのだけれど、「あ、やっぱりやーめた!」っていう場面では便利なのかな。 余力があったら実装してみよ…
UITextFieldでの入力状態をon/offするには以下のメッセージを使う。 キーボードを出す becomeFirstResponder キーボードを消す resignFirstResponder リターンキーでの制御 リターンキーが押された時に、次のTextFieldを入力状態にするなら、UITextFiledDele…
NSLogをリリース版で出力しないようにするには、プリコンパイルヘッダ(*.pch)に以下を追加する (Xcode 4.5.2では、Debug BuildのときはDEBUG=1がプリセットされるのを利用) #if defined(DEBUG) #ifndef NSLog #define NSLog( m, args... ) NSLog( m, ##args …
Interface Builderで UINavigationBarを設置すると、自動的にUINavigationControllderが self.navigationControllerにセットされると思い込んでいたのだけれど、IBで設置するBarはあくまでBarらしい。 ViewController* view = [[ViewController alloc] initW…
昨年の10月に、WindowsからMacBookProへとPCを変え、iOSアプリの勉強を始めました。 MS-DOS時代からコードを書き始め、Windows3.1が発売されてからずっとWin派で、OS Xはおろか、Macをまともに触るのも初めての状態だったのですが、VMware Fusion5に入れたWi…
選択ダイアログみたいなもの。 iPhoneでは常に画面の一番下から表示され、アプリケーションのビューの手前に表示される iPadではPopover内に表示される。 ガイドライン 使用目的 タスクを完了する方法を提示する。UIの特定の場所に選択肢を置かなくてもよく…
不要なアラートを作成しない 以下の場合はアラートは不要 何らかの情報を提供するためだけのもの 正常に進行しているタスクの最新情報 ユーザーが開始したアクションの確認 - Action Sheetを使用するべき ユーザーが何もできないエラーや問題についての通知 …
リストを表示するView 種類 プレーンテーブル Viewの幅いっぱいまで広がる行を表示。行はラベル付のセクションで分けることができる デフォルトの行の背景色は乳白色 グループテーブル 画面の端から少し内側に下がった位置に、行のグループを表示。青の縞模…
iPadでのみ使える。 左ペインは320ポイント固定。 デバイスがLandscapeの時はSplitView、Portlaitの時は左ペインをPopoverにすることが多い この動作は必須ではなく、アプリケーションで妥当であれば、どの向きでもビューを並べて表示してよい。 左ペインよ…
AndroidでいうところのDialog。iPadのみで使用可能。 使い方としては、メニューのようなモードレスと、タスク実行のモーダルにわかれる モードレス メニューやインスペクタ等、メインビューに関連する項目を示す際に利用。画面外をタップされたら、作業を保…
Androidの方じゃなく、iOS 6で追加されたUIActivityの方。 iOS6の機能はよく知らなかったのだけれど、Androidで言うところの暗黙のintentらしい。いや、呼び出すものはわかってるからexplicitなのかも? とにかく、あるアプリの機能を、別のアプリから呼び出…
Toolbar 各項目の領域を44x44ポイント以上に保つ ちいさいとユーザーがタップし難くなる プレーン(ボーダー無し)とボーダー付きの項目を混在させない Tab Bar 同じデータセットを異なる切り口で見せたり、アプリ全体のサブタスクを提供する場合に使用する。 …
iOS ヒューマンインターフェイスガイドラインのメモ UINavigationBar ナビゲーションを有効にする必要のない場合は、Toolbarを使用する バーのタイトルは表示中のViewのタイトルを使用する 新しいレベルのViewに切り替えたら、タイトルも新しいレベルのタイ…
アプリガイドに書いてあるのでTipsでもなんでもないが、いざ必要な時に忘れそうなのでメモ。 UIApplication.idleTimerDisabledをYESに設定すればSettingsに関係なく、画面ロックされなくなる。 ただし、むやみに無効化するのは消費電力の節約とはならないの…