サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
j-apps.sakura.ne.jp
NSStringの空チェックはnilのチェックと @”" の2つで判定してる人もいるかと思います。 ただ、ちょっと大げさな気もします。 NSString *string = @"Hello!!"; if(string == nil || [string isEqualToString:@""]){ NSLog(@"空です"); } - (NSUInteger)length で 0 かどうかを判定したら楽です。nilが入ってても大丈夫です。 NSString *string = @"Hello!!"; if([string length] == 0){ NSLog(@"空です"); }
UIWebViewの stringByEvaluatingJavaScriptFromString: は Javascript を実行するので何かとお世話になるメソッドです。 このメソッドの引数は NSString で Javascript のコードを書くことになるので長くなりがちです。 そこで、改行して見やすくすると激しくエラーが出ます。 // 1から10まで足した合計を出力 // エラーが出過ぎてビルドできる気配がない [self.webView stringByEvaluatingJavaScriptFromString:@" var sum = 0; var N = 10; for (var i = 1; i <= N; i++) { sum += i; } alert('合計' + sum); "]; Javascriptを別ファイルにしてそれを読み込めばいいのですが、ちょこっと
iOS5で正式なプロパティとしてUIScrollViewが使えるようになりました。 なら、UIScrollViewDelegateも使いたくなります。 iOS5.xだけならば簡単なのですが、iOS4.xも対応させるとちょっと癖があります。 ※ iOS4は非公開APIを使用するため場合によっては審査が通らない可能性があります。 ※※ 今のところ、この方法でRejectされたことはありません。 inderface部はこんな感じ @interface ViewController : UIViewController <UIWebViewDelegate, UIScrollViewDelegate> { __unsafe_unretained IBOutlet UIWebView *_webView; __unsafe_unretained UIScrollView *_subScrollVie
iWebinspectorは素晴らしいのですが、どちらかと言えばWeb開発向けです。 UIWebViewを見たいですよね。 iOS5でなければいけませんが、やり方がありました。今度はiWebinspectorも入りません。 (参考:Nathan de Vries Enabling Remote Debugging via Private APIs in Mobile Safari) UIWebViewを使ってるアプリのAppDelegate の application:didFinishLaunchingWithOptions: で 以下のコードを追加します。 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 非公
UIWebViewのスクロールが遅くてイラつきます。 実はこれUIWebViewが重いのではなくて、そういう設定になっているだけです。 デフォルトでは UIWebView 内の UIScrollView の decelerationRate が UIScrollViewDecelerationRateFast に設定されています。 それを UIScrollViewDecelerationRateNormal に変更すれば良いです。 幸いiOS5からはUIWebView 内のUIScrollViewがプロパティとして追加されたため 以下のようにするだけでスクロールの滑りがUITableViewのデフォルトと同等になります。 self.webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal; iOS4でも
2011年のiOS Advent Calendar 8日目です。 特にホットな話題でも無いのですが、UIWebViewで文字コードの変更です。 Stack overflowを検索するとHow to change the character encoding in UIWebView?こんなのがあります。 なるほど、NSURLConnectionで取ってきて、loadDataなりloadHTMLStringで読み込ませるようです。質問者はframe内の表示に困っているようですが、自分としてはframe内なんてどうでもいi で、この方法には別の問題があって、UIWebViewはloadRequestでなければ”戻る”,”進む”が使えなくなります。 Javascriptのhistory.backも使えなくなります。ブラウザのリロードを押したのと同じ感じです。 (参考:dTBlog UIWebVi
こんなの見つけましたiWebInspector [簡単な使い方] iOSシミュレータを立ち上げる シミュレータ内のSafariで調査したいページを開く iWebInspectorの”Load from Safari”をクリック Page Listingという今見てるページの確認画面が出るので良ければリンクをクリック SafariとかChromeのWebインスペクタに似た画面になるので、色々HTMLとかCSSを調整すると、iOSシミュレータ内のSafariに反映される! 立ち上げるとこんな画面 iOSシミュレータのSafariで適当なページを開く Webインスペクタが表示された! インスペクタでタグを選ぶとシミュレータ内のタグがハイライトされる。 background-colorを変えてみたり、h2タグの中身を変えてみたり 読み込み速度見てみたり ConsoleからJavascript叩いて
iOS5のUIWebViewでdocument.elementFromPoint(x,y)の仕様が変わった UIWebViewで指定した位置にあるHTMLの要素を取得するのにjavascriptのdocument.elementFromPoint(x,y)を使ってるけど、 iOS5では基準点がページ全体の左上からウィンドウの表示領域の左上に変わった。(いや、たぶん今までが正しい動作じゃなかった。) これに対応しないと正しくタップした位置の要素を取得できない。 例えば、iCabのBlog(Customize the contextual menu of UIWebView)にある方法でリンク長押しのコンテキストメニューの表示がやっていた場合、 [JSTools.js] function MyAppGetHTMLElementsAtPoint(x,y) { var tags = ","; va
このページを最初にブックマークしてみませんか?
『j-apps.sakura.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く