2010年4月10日土曜日

URLスキーム


NSString *mailto = [NSString stringWithFormat:@"mailto:body=%@",
[textField.textstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURL *url = [NSURL URLWithString:mailto];
[[UIApplication sharedApplication] openURL:url];

これでメールにいけます.
詳細は以下
mailto:info@example.com?subject=件名&body=本文

その他のURLスキームは
iPhoneで主婦の小遣い稼ぎ
でだいたい分かる

URLスキーム対応のアプリをつくるなら
強火で進め
を見ればわかる

俺は自アプリ→他アプリ→自アプリになるようにしたいんだがそこら辺がよく分からない。
他アプリにコールしてもらわなきゃいけないからムリなアプリもあるだろうがメールならイケるとおもうだけどな・・・
わかる方はいませんか?

ペースト機能の使用


UIPasteboard *pasteBoard=[UIPasteboard generalPasteboard];
[pasteBoard setString:textField.text]; // 文字列の書き込み textField.textは保存したい文字列


これでペーストボードに保存されています。

UIViewアニメーション

animeViewを0.1から1.5の大きさにするアニメーション


[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.5f]; //1.5秒でアニメーションする
[UIView setAnimationCurve:UIViewAnimationCurveLinear];//等速度で進行します
[UIView setAnimationDelegate:self]; //デリゲート
[UIView setAnimationDidStopSelector:@selector(someAnimationDidStop:finished:context:)]; // アニメーション終了後
[UIView setAnimationRepeatAutoreverses:YES]; // リバース動作
CGAffineTransform transform1 = CGAffineTransformMakeScale(0.1, 0.1);
CGAffineTransform transform2 = CGAffineTransformMakeScale(1.5, 1.5);
[self.animeView setTransform:transform1];
[self.animeView setTransform:transform2];
[UIView commitAnimations];// 終わり

//アニメーション完了のイベント処理
- (void)someAnimationDidStop:(NSString*)animationID finished:(BOOL)finished context:(void*)duration {
NSLog(@"アニメーション完了");
}



参考文献------
スマッシュを作ってみた(1)
『支出管理』サポート
UIViewで手軽にアニメーションを実行する方法
iPhoneSDKのUIViewアニメーション

2010年4月5日月曜日

ローカライズする

文字列出力部分にNSLocalizedString() を利用する


NSString* string = NSLocalizedString(@"hoge", @"comment");

@"hoge"が出力したい文字列で@"comment"が@"hoge"に対するコメントとなる。

Localizable.string ファイルを生成する


まず、翻訳ファイルLocalizable.stringを作成する。

Xcode>どのファイルでもいいのですがファイルの場所で右クリック>追加>新規ファイル

>Mac OS X「Resousers」>Strings File で名前を付ければ作成でる。

手動で作り上げることもでるが、便利なコマンドがある。

ターミナルでプロジェクトファイルがあるところで
genstrings -a $(find . -name "*.m")

をすればいい。-a をしないと上書き保存になってしまうので注意が必要。

Xcode に Localizable.string ファイルを取り込む


Xcode にドラッグ&ドロップして追加します。グループは Resource にでも入れておけばよいかと思います。Xcode に取り込んだ後、ローカライズの設定が必要です。Localizable.string ファイルを右クリックして「情報を見る」を選択します。表示されウィンドウの「一般タブ」の左下にある「ファイルをローカライズ可能にする」をクリックし ます。再度 Localizable.string の情報を見るを選択すると左下に「ローカリゼーションを追加」というボタンをあるのでクリックして追加したい言語を選択します。選択できるのは English, Japanese, French, German です。それ以外は手動で追加する必要があるようです。

翻訳する


Xcode から Localizable.string の下に出来ている言語ファイルを選択して翻訳したい言語ファイルを開いて編集していきます。このときに、NSLocalizedString() でコメントを入れておくと
/* comment */

"hoge" = "hoge";


となっているはず。

これをJapaneseだと
/*comment*/

"hoge" = "ホゲ";


に変更したりすればいいかと思う。

注意事項


Localizable.string ファイルは UTF-16 で保存しなければいけません。iPhone シュミレータではローカライズされているのに、実機でローカライズされていないときはだいたい文字コードの問題が多いです。