以下のサイトで、photoshopのシェイプ形式で様々なアイコンが公開されています。
Shapes4FREE
ライセンスが「個人利用、商用利用可」などかなり緩めに設定されています。
ありがたし。重宝しそうです。
2012年3月9日金曜日
xcode4でのローカライズ
xcode4.2でのローカライズ方法をまとめてみます。
これはもっと良い方法があるような気がするのですが(ソースコードを解析するツールがあるみたい)、私は以下の方法でやっています。
ローカライズ文字列をプログラム内で参照するには以下のようにします。
上で、Localizable.stringsのLocalizationでEnglishとJapaneseを追加したのと同じ手順で、InfoPlist.stringsをローカライズします。
あとは、CFBundleDisplayNameというキー名でアプリケーション名を設定します。
上で、Localizable.stringsのLocalizationでEnglishとJapaneseを追加したのと同じ手順で画像をローカライズします。
ちなみに、ファイルをローカライズすると、Englishのリソースはen.lprojディレクトリに、Japaneseのリソースはja.lprojディレクトリに、自動で振り分けられます。
文字列のローカライズ
これはもっと良い方法があるような気がするのですが(ソースコードを解析するツールがあるみたい)、私は以下の方法でやっています。
- プロジェクトのツリーを右クリックし、[New File]を選択する
- [Other]の[Empty]で、Localizable.stringsという名前のファイルを作成する

- 作成したファイルを選択し、右側のファイルインスペクターを表示する

- Localizationの+を押すと、Englishが追加される
- もう一回+を押し、Japaneseを追加する
- これでen.lprojフォルダとja.lprojフォルダにLocalizable.stringsが作成されます。
- [Open as] → [Property List]でLocalizable.stringsを開きます。適当に何か書き込んでおかないと開けないみたいです。
- あとは、Keyにキーワードを、Valueに文字列を追加していきます。
ローカライズ文字列をプログラム内で参照するには以下のようにします。
NSString *string = NSLocalizedString(@"keyword", @"説明");第1引数にキーワードを入れます。
アプリケーション名のローカライズ
上で、Localizable.stringsのLocalizationでEnglishとJapaneseを追加したのと同じ手順で、InfoPlist.stringsをローカライズします。
あとは、CFBundleDisplayNameというキー名でアプリケーション名を設定します。
画像のローカライズ
上で、Localizable.stringsのLocalizationでEnglishとJapaneseを追加したのと同じ手順で画像をローカライズします。
ちなみに、ファイルをローカライズすると、Englishのリソースはen.lprojディレクトリに、Japaneseのリソースはja.lprojディレクトリに、自動で振り分けられます。
2012年3月7日水曜日
iPhoneでバイブレーション
iPhoneでバイブレーションを鳴らす方法は、効果音を鳴らす方法と同じです。
まずは、AudioToolBox.frameworkをリンクする必要があります。
プロジェクト設定から[Build Phases]を選択し、[Link Binary With Libraries]のプラスボタンを押し、AudioToolBox.frameworkを追加します。
あとは、ヘッダをimportした上で、
まずは、AudioToolBox.frameworkをリンクする必要があります。
プロジェクト設定から[Build Phases]を選択し、[Link Binary With Libraries]のプラスボタンを押し、AudioToolBox.frameworkを追加します。
あとは、ヘッダをimportした上で、
#import <AudioToolbox/AudioServices.h>AudioServicesPlaySystemSoundを呼ぶだけです。
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);kSystemSoundID_VibrateがバイブレーションのサウンドIDです。
iOS5で明朝を表示する
開発側の話です。
iOS5で明朝フォントを使って文字を描画するには、drawRect:中で
でもなんかsizeWithFontしたときの高さがおかしいです・・・。
ちなみに、全フォントのファミリー名を表示するには以下のようにします。
iOS5で明朝フォントを使って文字を描画するには、drawRect:中で
[nsstring drawAtPoint:CGPointMake(left, top) withFont:[UIFontfontWithName:@"HiraMinProN-W3"size:fontSize]];とやります。
でもなんかsizeWithFontしたときの高さがおかしいです・・・。
ちなみに、全フォントのファミリー名を表示するには以下のようにします。
NSArray *families = [UIFont familyNames];
id aFamily;
for (aFamily in families) {
NSLog(@"\nfamilyName=%@\n fontname=%@", aFamily, [UIFont fontNamesForFamilyName:aFamily]);
}
2010年9月2日木曜日
クラスの調査
objective-cで、あるオブジェクトがどのクラスに属しているかを調べる方法です。
こんな感じのようです。
こんな感じのようです。
- (void)method:(id)object
{
// objectがNSStringクラスかどうかを確認
if ([object isKindOfClass:[NSString class]]) {
// NSStringクラスの場合
...
}
編集が終わったらキーボードを閉じる
iPhoneのソフトウェアキーボードを閉じる方法です。
UITextFieldにフォーカスが当たるとソフトウェアキーボードが出てきます。
キーボードの改行ボタンを押すと、UITextFieldにUIControlEventEditingDidEndOnExitイベントが飛んできますので、それを捕まえてUITextFieldからフォーカスを外してあげます。
フォーカスが外れるとキーボードが閉じ、めでたしめでたし。
コードはこんな感じです。resignFirstResponderメソッドを呼ぶことでUITextFieldからフォーカスを外してます。
Interface Builderで同じ事を行う場合は、UITextFieldの「Did End on Exit」というイベントにアクションを設定してあげます。
UITextFieldにフォーカスが当たるとソフトウェアキーボードが出てきます。
キーボードの改行ボタンを押すと、UITextFieldにUIControlEventEditingDidEndOnExitイベントが飛んできますので、それを捕まえてUITextFieldからフォーカスを外してあげます。
フォーカスが外れるとキーボードが閉じ、めでたしめでたし。
コードはこんな感じです。resignFirstResponderメソッドを呼ぶことでUITextFieldからフォーカスを外してます。
- (void)viewDidLoad {
UITextField *textField = [[[UITextField alloc]
initWithFrame:CGRectMake(10, 10, 200, 31)]
autorelease];
textField.borderStyle = UITextBorderStyleRoundedRect;
[textField addTarget:self
action:@selector(editingDidEnd:)
forControlEvents:UIControlEventEditingDidEndOnExit];
[self.view addSubview:textField];
}
- (void)editingDidEnd:(id)sender {
UITextField *textField = (UITextField *)sender;
[textField resignFirstResponder];
}
Interface Builderで同じ事を行う場合は、UITextFieldの「Did End on Exit」というイベントにアクションを設定してあげます。
登録:
投稿 (Atom)




