iOS7でUIAlertViewにaddSubview出来ない問題を回避する方法

タイトルに偽りあり。 正確にはiOS7からaddSubviewが出来なくなった訳ではなく、しても無視されるようになっているようです。 UIAlertViewにUIActivityIndicatorViewとかUIImageViewを乗せたりするUIってよく見ますよね。これが禁止されるとキツい部分も多い…

CoreImageで画像の加工をする その3「GPUにするべきかCPUにするべきか」

CoreImageで画像の加工をする その1「準備から実行」 CoreImageで画像の加工をする その2「フィルタの重ねがけ」 その1、その2からの続きというか補足です。 今までCIContextをこんな感じで作っていました。 NSDictionary *contextOptions = [NSDictionary d…

CoreImageで画像の加工をする その2「フィルタの重ねがけ」

CoreImageで画像の加工をする その1「準備から実行」の続きです。 前回モノクロ加工を行いましたが複数のエフェクトを適用したい場合があると思います。 例えばコントラストを調整する下記の様なメソッドを作ります -(UIImage*)effectColorControls:(UIImage…

CoreImageで画像の加工をする その1「準備から実行」

iOSのアプリで画像の加工をする場合、いくつか選択肢がありますがPhotompyで使っているCoreImageの簡単な使い方を紹介してみます。 CoreImageはAppleが提供しているAPIで、OSXやiOSで使う事ができます。ですがiOSでは使えるフィルタが限られているので注意が…

Photompy 1.0.2をリリースしました

iPhone用画像編集アプリ Photompyの1.0.2をリリースしました。 Photompykenji saito価格: 0円 posted with sticky on 2013.3.16 1.0.1の変更点を書いていませんでしたが、1.0.1は著作権表示の手直しなので特に機能変更は行われていません。 iTunesStoreの販…

Photompy 1.0リリース

iPhone用画像編集アプリのPhotompyをリリースしました。 Photompykenji saito価格: 0円 posted with sticky on 2013.3.16 AppStoreの説明と同じになってしまいますが、アプリの説明は下記の様になっています ■主な機能■ ・画像、文字の合成 ・画像の切り抜…

余裕のRejected

iOS

前回の記事から11日経過。 今だにReleaseされていないのは一度rejectを食らったから。 申請から5日後辺りにWaiting for ReviewからIn Reviewに変わったのだが、すぐにrejectメールが届いた。 メールにはiTunes ConnectのResolution Centerで詳細を確認しなっ…

iOSアプリをApp Storeに申請した

iOS

仕事ではじめてがっつり触れたiOS開発、最初は色々と戸惑う事もあったけど慣れてくるとObjective-Cでコーディングしているのが妙に楽しくなってきた。 具体的に何がっていうのがちょっと言葉に出来ないのだけど、なんか書いてて気持ちがいい。自分でもよくわ…

画像に何か加工を行った際に向きが勝手に変わってしまう

大雑把な括りになってしまうけれど、かなりハマってしまったので備忘録として残しておきたい。 タイトルの問題は画像に対してCoreImageを使い、エフェクトをかけたり、QuartzCoreを使って回転させたりした時に起こった。 テストで使っていた画像は iPhoneの…

大きい画像を回転させようとするとUIGraphicsGetImageFromCurrentImageContextで落ちる

画像を回転させる場合、例えばこんな感じでやっていたのだが、大きな画像をこれで動かした時はUIGraphicsGetImageFromCurrentImageContextで落ちる事がわかった UIImage *img = self.image; CGImageRef imgRef = [img CGImage]; CGContextRef context = nil;…

UILabelのframeとtextから適切なfont sizeを取得する

textとfontからUILabelのframeを適切なsizeにするのはいくつもあったけど、タイトルの様な処理は見かけなかったのであんまり需要はなさそうだけど書いてみた。 今作ってるアプリケーションで任意のfont sizeを指定されたUILabelがUIVewにaddsubviewされる場…

UIImagePickerControllerを回転対応させる

以前書いたこれについての問題は解決した。 前回のエントリを見てもらえるとわかると思うが、UIImagePickerControllerはUINavigationControllerを継承しているので回転系処理に一工夫する必要があった。 UIImagePickerControllerを継承したCustomUIImagePick…

UINavigationControllerでUpsideDown時にイベントを取得する

UINavigationControllerで表示しているviewを回転させても何故かUpsideDownの時だけwillAnimateRotationToInterfaceOrientationが呼ばれない。 どうやらUINavigationControllerだとUpsideDownは抑制されているのでUINavigationControllerを継承したclassを作…

横向き状態でUIImagePickerControllerを使いフォトライブラリを触った時

シミュレータ上だけど強制的に縦向きに切り替わる フォトライブラリから写真を選択した後は横向きに戻るので不自然な動作に見えてしまう。 横向きしか許容していない状態でこの動作を行うと強制終了するし、ALAssetsLibraryを使った場合も縦向きになってしま…

SQLiteを操作するAirアプリケーションを作成する 8(Airアプリ作成編)

前回までで準備完了。最後にAirアプリを作成する。作成方法はここの通り これでひと通りSQLiteを操作出来るAirアプリケーションが出来た。 とは言え色々と残ってる疑問もあるし、SQL実行させるならトランザクションの処理も入れたいとも思ってるので課題は多…

SQLiteを操作するAirアプリケーションを作成する 7(ビューとロジック分割編)

前回までひと通り作成してきたけれど、今のままだとmxml内にビューのコードとロジックのコードが存在していてちょっと気持ち悪い。 それを解消するためにmxmlからActionScriptを抜き出し、別途asファイルを作成してmxml側から参照してやるように変更してみる…

SQLiteを操作するAirアプリケーションを作成する 6(Delete編)

前回Updateの処理を書いたので、今回は削除の処理を書く 一応これでCRUD全て実装した事になる まず画面の方に下記のボタンを追加する <mx:Button id="selectBtn" label="削除" click="deleteIdol(event)" /> 続いて呼び出されるfunctionを作成する private function deleteIdol(event:Event):void { var item:Object = dg.selecte</mx:button>…

SQLiteを操作するAirアプリケーションを作成する 5(Update編)

前回DataGridを利用し、DBのデータを表示した。 次は表示したデータを更新してみる DataGridを下記の様に変更する <mx:DataGrid id="dg" width="100%" height="100%" dataProvider="{dp}" editable="true" itemEditEnd="update(event)"> <mx:columns> <mx:DataGridColumn editable="false"/> <mx:DataGridColumn dataField="id" headerText="Id" visible="false"/> </mx:datagridcolumn></mx:datagridcolumn></mx:columns></mx:datagrid>

SQLiteを操作するAirアプリケーションを作成する 4(Select編)

前回でひとまずinsertまでは出来た。次にDBからデータを取得し、一覧させる様にしたい まずは画面に一覧させる受け皿を用意してやる <mx:DataGrid id="dg" width="100%" height="100%" dataProvider="{dp}"> <mx:columns> <mx:DataGridColumn dataField="name" headerText="Name" /> <mx:DataGridColumn dataField="height" headerText="Height" /> </mx:datagridcolumn></mx:datagridcolumn></mx:columns></mx:datagrid>

SQLiteを操作するAirアプリケーションを作成する 3-3(プリペアドステートメント編)

前回insert文を綺麗にするためのfunctionを作成した 続いてSQLインジェクションを防ぐ為、プリペアドステートメントを利用する。 セキュリティを考慮するなら基本的にこのプリペアドステートメントは利用するべきで、前回までの様なinsert文で実装するのはや…

SQLiteを操作するAirアプリケーションを作成する 3-2(値チェック編)

前回insertのロジックを実装したが、問題が残っていた。 まずはその1、正常なSQL文を作成するようにチェックをしてやる 下記の様なfunctionを作成し、入力されていたらそれをそのまま、空ならNULLを返す様にした。 private function checkIntegerField(input…

SQLiteを操作するAirアプリケーションを作成する 3-1(Insert編)

前回はテーブル作成のロジックを作成した所まで。 次にinsertするロジックと画面を作成して実際にテーブルにinsertしてみる insertのロジックを下記の様に書いてみる private function insert():void { stmt = new SQLStatement(); stmt.sqlConnection = sql…

SQLiteを操作するAirアプリケーションを作成する 2(テーブル作成編)

前回DBへ接続するロジックまで記述したので、続いてテーブルを作成するロジックを記述する 前回作成したidol.mxmlにテーブル作成のロジックを追加する private var sqlConn:SQLConnection = new SQLConnection(); //追加。DBの操作を行う private var stmt:S…

SQLiteを操作するAirアプリケーションを作成する 1(DB接続編)

DBを操作するAirアプリケーションを作成してみる。 MacにはSQLiteがインストールされているので、そのまま使用する と思ったけどAirは自身がSQLiteを内包しているので特に気にせず扱ってくれる 下記のコードでidol.mxmlを作成し、接続までのロジックを記述す…

LionでAir開発をする 2

LionでAir開発をする 1の続き。Airの開発構築 Air SDKをここからダウンロードする。現在のバージョンは3.2 ダウンロード後、任意の場所へ解凍する。前回同様/Users/username/localへコピー 環境変数を設定する。bash_profileは前回作成済みなので下記の様に…

LionでAir開発をする 1

Flexの環境構築 Flex SDKをここからダウンロードする。現在のバージョンは4.6 ダウンロード後、任意の場所へ解凍する。今回は/Users/username/localへコピー 環境変数を設定する。 /.bash_profileがある場合は末尾に追加 /.bash_profileがない場合は下記コマ…