iPhone/iPod touch
[iPhone] UIWebView の表示内容をキャプチャして UIImage を生成する
13UIWebView の表示内容を UIImage にして、表示する方法です。UIWebView を表示させずに、指定した URL のページ内容をレンダリングして UIImage を生成して、UIImageViw に表示します。スクリーンショットだけを取りたいときに使えます。
UIWebView はインスタンスを生成しただけでは、URL をロードしてもレンダリングされません。レンダリングするには UIWindow 内になければダメです。そのために実際には表示しない UIWindow を作成して、その中に addSubview します。
(続きを読む…)
[iPhone] UIWebView のタッチイベントを取得する
7iPhoneSDK開発のレシピのレシピ47「UIWebView をフィンガージェスチャーで操作する」書かせていただいたのですが、この処理でプライベートAPI を使用しているために、以下のように修正しまさせていただきました。GitHub のサンプルコードでは既に先月修正済みなのですが正式にアナウンスしていなかったので、改めて説明させていただきます。
やりたいことは、Firefox などのマウスジェスチャーのように UIWebView をフィンガージェスチャーで操作するということです。UIWebView ではシングルタッチはスクロールや拡大縮小などがあるため、2本指でのタッチで左右にスワイプしたときに戻る、進むという動作をさせることにします。(フレーム内のスクロールに2本指でのタッチを使用しますが、まあその辺はとりあえず置いておいて下さい)
(続きを読む…)
[iPhone] UIWebView のリリース前に delegate に nil をセットする必要がある
16UIWebView のインスタンスに delegate を指定している場合は以下のように release する前に delegate に nil をセットする必要があります。
- (void) viewDidLoad { webView = [[UIWebView alloc] init]; webView.delegate = self; .... } - (void)dealloc { webView.delegate = nil; [webView release]; }
[iPhone] UIView の小技 2つ
3iPhone OS3.0 から使用できる UIView の小技を2つ紹介。
※すべての画像はクリックで拡大表示できます。
Group Opacity
UIView 内にある重なった2つの UIImageView があるときに、UIView の alpha 値を下げると UIImageView が重なっている部分がお互いに透過されて見えてしまいます。(下図参照)
(続きを読む…)
[iPhone] Xcode3.2 で cocos2d の Device Build でエラーになる
1cocos2d の Device Build で以下のエラーがでました。シミュレータでは出ずに実機ビルドだけです。
[iPhone] UITableViewCell の高さを表示する内容によって変える方法
1Twitter クライアントのようにテーブルのセルの高さを表示するテキストの内容によって変える方法です。
UITableViewCell に UILabel を入れて、numberOfLines をゼロにします。numberOfLines をゼロにすると行数の制限がなくなります。
次に tableView: heightForRowAtIndexPath: で表示する行によって必要な高さを計算します。NSString を表示するサイズを計算するには、sizeWithFont:constrainedToSize:lineBreakMode: を使用します。
(続きを読む…)
[iPhone] シェイク動作を簡単に取得する方法
2iPhone OS3.0 から本体をシェイク(振る)すると Undo できるようになりました。OS3.0 以前では加速度センサをチェックすることで、シェイク動作をチェックすることができましたが、OS3.0 からは UIRespoer の motionEnded:withEvent: でシェイク動作を取得することができます。
UIEvent に以下のプロパティがあります。
- @property(readonly) UIEventType type;
- @property(readonly) UIEventSubtype subtype;
- UIEventTypeMotion
- UIEventSubtypeMotionShake
[iPhone] モーダルビューの非表示、値の受け渡しはデリゲートで行う
4iPhone でのモーダルビューの表示、非表示、値の受け渡し方法です。モーダルビューとは、下からニョキッと出てくるタイプの一時的なビューです。何か情報を入力させたりするのに使用します。
大事な点は、
- モーダルビューの表示、非表示は両方共同じクラスでやること
- 値の受け渡しはデリゲートで行うこと
ということです。
(続きを読む…)
[iPhone] UIView の frame と bounds の違い
5UIView の位置やサイズを知るプロパティに frame と bounds があります。この frame とbounds の違いを簡単にまとめて見ました。
簡単にまとめると以下のようになります。
- frame はスーパービューから見た座標
- bounds はローカルのビューから見た座標
[iPhone] MapKit でリバースジオコーディング、緯度経度から住所を取得
1ジオコーディングは住所から緯度、経度を取得しますが、リバースジオコーディングはその名の通り、緯度経度から住所を取得します。MapKit だけでこのリバースジオコーディングが提供されています。
リバースジオコーディングを使用するには MKReverseGeocoder を使います。MKReverseGeocoderDelegate の設定を忘れずに。
(続きを読む…)