CocoaTweetこんにちは、iPhone大好き橋本です。今日はiPhoneアプリの作成に関する「こんなときどうするの??」という疑問にお答えするべく、小技をいくつか紹介したいと思います。文字サイズに合わせてUILabelのサイズを変えたい。UILabelを作成するときに、Labelに表示する文字によってUILabelのサイズを変えたいということ無いですか??ただ、UILabelを作成するときはframeのサイズを指定しなきゃいけませんよね。こんなとき、どうするの??そんなときには、UILabelにこんなカテゴリを書いちゃいましょ。sizeWithFont:forWidth:lineBreakMode:メソッドを使用することで、UILabelの表示に必要なCGSizeを得ることができます。CGSizeが取得できれば、あとは、UILabelのframeに取得したCGSizeを反映させれば、表示する文字に応じたサイズのUILabelを作成することができます。CGSizeを得るためには、fontとtextが必要なため、今回はfontとtextを引数とするメソッドを書いてみました。オブジェクトを使い回すときのために、resizeWithPoint:も実装しておくといいと思います。UIAlertViewにUITextFieldを表示したい。UIAlertViewにUITextFieldを表示したいっていう場面があると思うんです。ログインをユーザに求めるAlertを出したいときとか。デフォルトのUIAlertViewだと、テキストを表示することしか出来ませんよね。こんなとき、どうするの??そんなときは、こういう感じで強引に実装しちゃいましょ。show];UIAlertViewのメッセージに改行を2つ入れて二行分のスペースを確保します。そのスペースにうまいことUITextFieldを入れてやります。これだけでUITextFieldをもつUIAlertViewを表示出来ちゃうんですね。UITextViewで表示したURLのリンク先をSafariじゃなくてUIWebviewで表示したい。UITextViewのdataDetectorTypesプロパティにUIDataDetectorTypeLinkを設定すると、UITextViewに表示した文字列に含まれるリンクを拾うことができるようになるのはご存知のことかと思いますが、これだけだとリンクをクリックしたときにSafariで表示されちゃうんですね。いちいちSafariが起動するのはイヤな感じですよね。iPhone3Gだとマルチタスク対応してないので、Safariから戻ってきたときに、アプリを起動しなおすことになりますよね。