iOS
iOSアプリで日付文字列をNSDateに変換する話です。よく知られているように、NSDateFormatterを使って変換をするのが一般的です。 NSDateFormatter* formatter = [NSDateFormatter new]; formatter.dateFormat = @"yyyy/MM/dd HH:mm:ss"; NSDate* date = [for…
Xcodeにはstoryboardを使って作り上げたViewをプレビューする機能があります。これを使うと、画面回転時、4インチと3.5インチの切替時、iOS7とそれ以前の切替時、それぞれのレイアウトを確かめることができます。 AutoLayoutでConstraintを付けた結果がどう…
今日(2014/02/04)1週間ぶりにぐらいに$ pod installしたら妙なエラーが出てライブラリのインストールができなくなりました。 エラーメッセージの最後はこんな感じでした。 Pull is not possible because you have unmerged files. Please, fix them up in …
iOS5から使えるようになったCIDetectorがiOS7で更に進化し、笑顔やまばたき(目をつぶっているかどうか)を検出可能となりました。 すごく簡単に実装できる上に処理も遅くないのでいろいろな使い道があると思います。 下準備 まずCoreImageフレームワークを…
iOSアプリでアプリケーションティレクトリを使うようなアプリだと、開発中やデバッグ中にそのディレクトリの中を確認したくなることってたくさんありますよね。 ですが、そのときに必要な行動は実機でもシミュレータでもとても面倒です。実機はコネクタで繋…
先日書いた「ペア要素をキーにしたNSDictionary」という記事でNSDictionaryのキーにしたPairクラスはNSCopyingプロトコルを実装するように書きました。 このNSCopyingに関してはこれまで詳しいことを知らなかったのでヘッダーやリファレンスで調べてみました…
NSDictionaryで複数要素をキーにしようというお話です。 普通の連想配列はキーとバリューで1つの組み合わせになりますが、片方が◯でもう片方が☆のときはこの値みたいなケースの場合は最初から用意されているデータ型では間に合わないことが多いです。 C++で…
UIButtonってタップ中の状態に色とか背景とか画像とか変えられますよね。てっきりコードでしか出来ないと思っていたらそんなことありませんでした。恥ずかしい。 このState Configを変えてから設定を変えると、そのStateに対して値が用いられるみたいですね…
UIButtonに画像をつけるとデフォルトでは画像の右側にテキストが回りこむような形でレイアウトされますが、このレイアウトはカスタマイズ可能です。 画像とテキストはそれぞれ独立して動かすことができますので、次のようなレイアウトを作ることも可能です。…
こんな謎のビルドエラーに遭遇しました。 property's synthesized getter follows Cocoa naming convention for returning 'owned' objects どうやらnewから始まるプロパティ名は使用できないようです。エラーメッセージがわかりにくいので調べないとわかり…
テストコード実行時のみ通るコードを書くためにTesting用のConfigurationを作成してビルドしたら次のようなリンクエラーがでました library not found for -lPods CocoaPodsを使っているプロジェクトだったのですが、CocoaPods周りの設定が新しいConfigurati…
テストコードのときのみ実行したいコードってありますよね?例えばサーバーのURLを変えたり、テスト用のデータを用意したりいろいろな用途があり得そうです。 シンプルにやるにはプリプロセッサマクロを使ってこんな風にやるのがよさそうです。 - (void)meth…
iOS(とかOSX)でグラフを書けるCorePlotいいよー。オプションとかいろいろあって煩雑だけどそこはさておいて簡潔にまとめてみようと思います。 まずは導入編 CocoaPods使いましょう。 pod 'CorePlot' からの$ pod installでいけます。 散布図、折れ線グラフ…
iOSのアプリを開発していてこんな要望がありました。 「撮影した写真を半透明にした上で色を少し変えて出したいから、ちょうどいい値を探したい」 どの程度半透明にするかはalpha値に対応したスライダーをおけばいいなというのはすぐにわかりましたが、色を…
先日、この図に相当するケースでUIViewに隠れているボタンを押せるようにしたいということがありました。 何も指示しないと手前のUIViewがイベントを受け取ってしまうのでその下にあるUIButtonはタップすることができませんが、UIViewのuserInteractionEnabl…
UIButtonの背景色をグラデーションにする方法は簡単です。適当にググればでてきますし。ですが、ボタンをタップしたときの色をグラデーションにする方法はちょっと面倒でトリッキーだったので紹介します。 その前に、背景色を普通にグラデーションにする方法…
こちらを参考にAVFoundationを使ったカメラを実装したのですが、このやり方だとどうもメモリを圧迫するということがわかりました。 iOSのカメラ機能を使う方法まとめ【13日目】 | Developers.IO カメラ機能を使うビューに移動→戻る、を繰り返すとだんだんと…
XcodeでHeader Search PathやLibrary Search Pathを設定するときには環境変数を使ってマシンや人ごとの差を吸収すべきなんですが、環境変数名が覚えにくいので何度も調べる羽目になります。 そんなとき便利なので、xcodebuildコマンドを使って環境変数一覧を…
この間のポストでKIFでフレームワークの導入方法と簡単な使い方について書いたけど、そこからさらに使ってみてもうちょっと使い方がわかったのでそれを書いてみます。 その前に先日の記事。 XCode5対応!KIFでiPhoneアプリの受け入れ(統合)テスト - PILOG …
先日のKIFの記事に続いてSubliminalというフレームワークを試そうと思ったのですが、GithubのREADMEにしたがって1時間ぐらい格闘しても動かすところまでいけませんでした。 inkling/Subliminal · GitHub CocoaPodsに対応していないので最初に動かすまでのセ…
最近初めてiPhoneアプリでテストを書く機会がありました。テストを書くならこの際ユニットテストだけではなく画面遷移を含めたテストも書いてみようと思い、環境を整えてみました。 テストフレームワークの選択肢 kif-framework/KIF inkling/Subliminal Test…
(追記)この方法では全てのコメントを編集できるわけではないようです。わかったらまた書きます。 XCodeで新しくプロジェクトを作ったりファイルを追加したりするとファイルの上部にこんなコメントが挿入されますよね。 // // AppDelegate.m // AppName // //…