iPhone や iPad のメールで添付ファイルをアプリケーションに取り込む方法です。
扱えるファイルを指定する
アプリケーションで扱えるファイルタイプを info.plist で指定します。例えば PDF を開けるようにしたい場合は以下のようにします。
iPhone や iPad のメールで添付ファイルをアプリケーションに取り込む方法です。
アプリケーションで扱えるファイルタイプを info.plist で指定します。例えば PDF を開けるようにしたい場合は以下のようにします。
iOS3.2 で追加された UIGestureRecognizer を使うと様々なジェスチャーを簡単に識別することができます。ただし、iOS3.2 以降で利用可能なので使用する際には注意が必要です。iPad アプリなら問題ないです。識別できるジェスチャーは以下のとおりです。
NSArray 内のオブジェクトの指定したメンバ変数でソートする方法です。
NSArray に複数の Book クラスが入っているとします。Book クラスは以下のようなメンバ変数を持っています。
@interface Book: NSObject {
NSInteger no;
NSString* furigana;
NSDate* publish_date;
}
ソートするには NSArray 内のオブジェクトに NSComparisonResult を返すメソッドを作り、そのメソッド内で比較をします。
続きを読む »
メール.app のようにアドレス帳からメールアドレスを選択させる方法です。大まかな仕様は、個人を選択させ登録メールアドレスが1つならそのまま登録されているメールアドレスを取得し、複数メールアドレスが登録されている場合は、登録されているメールアドレスを全て表示してどのメールアドレスを使用するかを選択してもらいます。
続きを読む »
えー、私のアプリのアイコンは見事にぼやけております。iPhone4 で採用された Retina Display。キレイですよね。ただし、気をつけないとアプリのアイコンがぼやけた感じになってしまいます。iPhone4 用に2倍の大きさのアイコンを作成しないといけないのです。当然といえば当然なのですが。。。
続きを読む »
MFMailComposeViewController を使うと簡単にアプリ内から簡単にメール送信することができます。HTML メールも送信することが可能ですが、HTML で img タグを使うときには画像ファイルを Base64 エンコードする必要があります。
下記サイトの下の方にある NSData+Base64 のコードをダウンロードしてプロジェクトに追加します。
Cocoa with Love: Base64 encoding options on the Mac and iPhone
続きを読む »
NSLog の文字列フォーマットは C言語の printf と同じです。この文字列フォーマットには引数を文字列内に入れる順番を指定することができます。
NSLog(@"%@, %@, %@", @"one", @"two", @"three");
上記の実行結果は “one, two, three” です。
次に下記のように実行すると
続きを読む »
UIWebView の表示内容を UIImage にして、表示する方法です。UIWebView を表示させずに、指定した URL のページ内容をレンダリングして UIImage を生成して、UIImageViw に表示します。スクリーンショットだけを取りたいときに使えます。
UIWebView はインスタンスを生成しただけでは、URL をロードしてもレンダリングされません。レンダリングするには UIWindow 内になければダメです。そのために実際には表示しない UIWindow を作成して、その中に addSubview します。
続きを読む »
iPhoneSDK開発のレシピのレシピ47「UIWebView をフィンガージェスチャーで操作する」書かせていただいたのですが、この処理でプライベートAPI を使用しているために、以下のように修正しまさせていただきました。GitHub のサンプルコードでは既に先月修正済みなのですが正式にアナウンスしていなかったので、改めて説明させていただきます。
やりたいことは、Firefox などのマウスジェスチャーのように UIWebView をフィンガージェスチャーで操作するということです。UIWebView ではシングルタッチはスクロールや拡大縮小などがあるため、2本指でのタッチで左右にスワイプしたときに戻る、進むという動作をさせることにします。(フレーム内のスクロールに2本指でのタッチを使用しますが、まあその辺はとりあえず置いておいて下さい)
続きを読む »
UIWebView のインスタンスに delegate を指定している場合は以下のように release する前に delegate に nil をセットする必要があります。
- (void) viewDidLoad {
webView = [[UIWebView alloc] init];
webView.delegate = self;
....
}
- (void)dealloc {
webView.delegate = nil;
[webView release];
}
Recent Comments