× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
iPhoneでフォントを指定するときは、
という具合に、フォント名とサイズ(縦幅)を指定する。 じゃあ、どんなフォントがあるのさ? ということは当然知りたくなる。 そんな人のために、使用できるフォントの一覧を取得する関数も用意されている。
NSStringの配列で、フォント名が返ってくる。これを標準出力にでも出せば、使えるフォントの一覧が見られる。 iOS SDK4.2だと、以下のようになった。 PR |
iBookのストアで
Apple Development Publications で検索。 すると5つの文書がヒットする。 iOS Application Programming Guide 一番基本的なこと。 アプリのランタイム環境 バックグラウンドとフォアグラウンド ビルド チューニング など iOS Technology Overview iOSの各レイヤーについて The Objective-C Programming Language Objective-Cの文法、仕様かな Object-Oriented Programming with Objective-C Objective-Cでオブジェクト指向プログラムを書く Cocoa Fundamentals Guide Cocoaについての詳細。 参照カウントの説明とかも詳しく載っている 中身を詳しく読んでいったら、各個記事にしよう。 |
前の記事の続きです。
AppleMemverCenterに登録すれば、 Macでアプリを作成し、Mac上のSimulaterで動かすことはできます。 しかし、実機に転送して動作させたり、AppStoreでアプリを販売することはまだできません。 それをするには、"iOS Developer Program" を購入する必要があります。 $99/year. 10800円/年です。 ここからはその手順を説明します。 |
iPhone/iPadで開発する際の手順を書きます。
1. Macを買う Mac OS X SnowLeopard (Mac OS 10.6) 以降のものを買います 2. 開発環境を整える Mac を買うと、統合開発環境である XCode が付いてきます。 インストールCDが付属。 あるいは、開発者プログラムに登録(無料)すれば、サイトからダウンロードも可能。(後述) 3. iPhone/iPadを買う もちろん、実機が必要です。 実は、Mac上で動くSimulaterが存在するので、それを使っても良いのですが、 やはり実機で動作確認することは必須。Simulaterではできない操作もあります。 (カメラ撮影、加速度センサー、マルチタップなど) 必ず買っておきます。 しかし、実機でアプリを動かすためには、開発者登録(有料)が必要です。 4. Apple Developer に登録 まずは無料で登録します。 iOSのDevCenterはこんなサイト。 http://developer.apple.com/devcenter/ios/index.action |
iPhone,iPadにはファイラが無い。
データやファイルはすべてアプリに紐づけられる。 そのアプリで作られたデータは、そのアプリからしか見えない。 そのデータを他のアプリや他の機器から参照することはできない。 それは良いところでもあり、悪いところでもある。 あのデータはどこに置いたっけ…? と無くしもの探しをする必要がない。 データは必ず何らかのアプリに使われることで意味を持つ。そうでなければただの1と0のカタマリでしかない。 だから、データがアプリに管理されるというやり方は理に適っている。 その代わり、別のアプリからデータを参照したいとき、複数のアプリで連携したりなどはとても苦手である。ここはAndroidと正反対だ。 iPhoneとiPadのどちらでも動くアプリがあっても、中のデータは同期できないから、例えばiPhoneで進めたゲームをiPadで遊ぼうとしても、また一からやり直しになってしまう。 これはアプリ開発者にとっても起こる問題だ。 ゲームを作っていて、iPadで実機でステージエディットなんかしていて、さてこのデータをMacで見たいなとか、iPhoneに移したいな、というときに困ってしまう。 iPad内のアプリのホームディレクトリ下にエディットデータを保存しているけど、ファイラは無いから見えないし、同期をとってもMacにはコピーされない。どうしよう。 で、方法はいくつかある。 |
昨日友人に教えてもらった。
XCodeでファイルをコンパイルするとき、 ファイルごとに、そのファイルが何の言語で書かれているかを指定できます。 ○方法 プロジェクト(ファイルビュー)のファイルを右クリックし、「情報を見る」を選択。→「ファイル***.**の情報」ウィザードが開く 「ファイルタイプ」のプルダウンリストからファイルタイプを選択。 ○解説 多分、最初に***.mとして作られたファイルは、 sourcecode.c.objc となっているはず。 これは、Objective-C固有表現と、C言語がコンパイルできます。 ***.mmファイルなら、 sourcecode.cpp.objcpp これは、Obejctive-C固有表現と、C++がコンパイルできます。 (Objective-C++という言い方をすることもあります) この2つのファイルタイプは、ファイル名の拡張子を書き換える(.m←→.mm)と自動的に変化してくれます。 (自分は今までそうしていた。) ***.hファイルなら、 sourcecode.c.h になっているようです。 この「ファイル***.**の情報」ウィザードでは、他に ・ファイルパス ・絶対パスか、相対パスか(その場合どこを基準にするか) ・エンコーディング(デフォルトはUnicode UTF8) ・タブ幅 ・インデント幅 なども指定できます Thanks to M君! |
C言語の文字列から、Objective-CのNSStringへの変換
逆に、NSStringからC文字列への変換
エンコーディング方式を指定する必要がある。 |
フォント描画の仕方。
enum CGTextDrawingMode { kCGTextFill, //塗りつぶし kCGTextStroke, //枠だけ kCGTextFillStroke, //枠と塗りつぶし kCGTextInvisible, //非表示 kCGTextFillClip, //クリップ範囲の背景と塗りつぶし kCGTextStrokeClip, //枠と背景 kCGTextFillStrokeClip, //塗りつぶしと枠と背景 kCGTextClip //クリップ範囲内の背景と文字塗りつぶしだけ }; クリップ範囲ってどう決めるんだ? テキストエンコーディングをMacRomanにしたい場合、 CGContextSelectFont() CGContextShowTextAtPoint() そうでない場合、 CGContextSetFont() またはCGFontCreateWithPlatformFont() CGContextSetFontSize() CGContextShowGlyphsAtPoint() 注意:こちらの方式でフォントをセットした場合、描画はCGContextShowGlyphsAtPoint()を使うこと。 この指定だと、エンコーディングが指定できない。その場合、デフォルトのエンコーディングであるkCGEncodingFontSpecificが使われるため、CGContextShowTextAtPoint()が正しい動作をする保証がないらしい。 グリフを使った描画
グリフって何? 公式サンプル 公式リファレンス |