日々精進

新しく学んだことを書き留めていきます

2012-01-01から1年間の記事一覧

UITableViewのセクションヘッダを非表示にする方法

何も表示させない場合は下記のブログの記事のようにすればいいらしい。 Cocoaの日々: UITableView - 特定のセクションヘッダの高さを0にする バッドノウハウだなあ。。

jasmineとmochaの比較

テスティングFWのjasmineとmochaのどっちを使おうか迷ったので比較記事を調査。 Jasmine vs. Mocha Javascript testing for Rails 3.1+ - Stack Overflow 記事の内容は以下。 自分的にはブラウザでのテストにはJasmine、Node.jsでのテストはMochaがいい気が…

coffeescriptの自動コンパイル

今までcoffee -wc **/*.coffeeを使ってたけど、以下の問題があった。 ・新しく追加したファイルをコンパイルしてくれない ・すべてのサブフォルダにあるcoffeeファイルをコンパイルしてくれない 調べてみるとjitterというnodeのパッケージを使えば上記の問題…

すべての実行されたメソッド名をログに出力する方法

環境変数のNSObjCMessageLoggingEnabledをYESにするとできる。 デバッグに使えるかな?と思ってやってみたけど、呼ばれるメソッドが多すぎて使えなかった。。何らかの基準で絞らないとだめだ。 下記のように絞ったら役に立つかも。 tail -f msgSends-19721 |…

HTMLテンプレートをHTMLと同じように色分けする

Webstormで拡張子が.templateのファイルとHTMLと同じように色分けするには、ファイルタイプを追加すればいい。 手順は以下。 Creating and Registering File Types これでHTMLテンプレートも見やすくできる。

AppCodeのwatchesウィンドウでselfが「use of undeclared identifier self」になる

なぜかこの現象が起こってデバッグ時に困った。 デバッガをLLDBからGDBにしたら直った。 原因は不明。。XcodeをUpdateしてiOS6対応にしたからかな?

rate,ratio,propotionの違い

勉強になったので共有。 rate:ある一定期間における、何かが発生した回数もしくは何かの数。 ratio:二つの量の関係。片方がもう片方に対してどのくらい大きいのかを、二つの数字で表す。 proportion:全体との関係を考慮した場合の一部分。なるほど。。 参…

hidden = NOとアニメーションを一緒にやるとアニメーションがキャンセルされる

hiddenはアニメーションできないプロパティなので、以下のようなコードを書くとアニメーションがキャンセルされる。 self.view.hidden = NO; [UIView animateWithDuration:0.2 animations:^{ self.view.frame = CGRectMake(0, 0, 100, 100); }]; アニメーシ…

UIWebViewが真っ白になる

なんで?と思ったらUIWebViewのopaqueがtrueなのが 原因らしい。falseにしたらちゃんと文字が見えるようになった。 参考:iphone uiwebview inital white view - Stack Overflow

UIImageViewに設定したgestureイベントが動かない

UIImageViewはuserInteractionEnabledがデフォルトNOになっているので、IBでYESにしてやるとgestureが効くようになる。 参考:ios - UIGestureRecognizer on UIImageView - Stack Overflow

UIViewのtransformを使うとframeがおかしくなる

前からおかしいと思ってたけど、transformを使うとframeの値がおかしくなるのは仕様らしい。 参考:でらうま倶楽部 : iPhone 大丈夫?表示系のトラブル。 まじか。。 そしてframeがboundsとcenterから計算されてるというのも意外。逆だと思ってた。。

イベント透過ビューの作り方

hitTestをオーバーライドすればいいらしい。 参考:iPhone アプリ研究会 UIView上のボタンと背景にあるボタンのタップについて

node.jsのスクレイピングはCPUヘビーな処理

jsdomを使ってスクレイピングする処理のパフォーマンスを計測してみた。 Requestにかかった時間:200msぐらい Request以外にかかった時間(jsdomでDOM構築一回400ms、jQueryスクレイピング200ms):1000msぐらい ということでスクレイピングはCPUヘビーな処理…

UILabelは行間のスペースを調節できない

まじかよ。。回避策は以下があるらしい。 1.UILabelを複数使う 2.drawTextInRectをoverrideして自分で描画処理を実装 今回は2行でいいと決まっていたので1番を選択。 行間の調節したい場面多いと思うけど簡単にできないんだね。 参考:ios - Set UILabel…

UIButtonを押しても反応がない

UIButtonを押してもハイライトされないし、イベントは発生しないしで困った。 調べた結果、親ビューのframe外に出ているのが原因だった。 IBではビューのサイズを縦向きに合わせて作っていて、 横にしたときはautoresizeして画面にフィットするようにしてい…

webstormが超重くなる

webstormを使っているとすごく重くなって頻繁に固まることがある。 ウィンドウの右下のメモリ使用量を見るとMax近くになっている。たぶんメモリリークしてるんだろう。 一度終了させると軽くなる。 最近のPCは電源落とさないからちょっとでもリークしてると…

UIButtonのtitleを中央に表示する

UIButtonのtitleが微妙に上に寄っていて困った。 以下のコードで直せた。 [self.button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; [self.button setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; …

deck.jsでプレゼン資料を作ってgithubで公開

今度【増員】【TechBuzz】第2回.js系勉強会 〜Backbone.js 大集合!/ Backbone.js+Ruby On Rails + CoffeeScriptではじめるモダンWebアプリケーション / Backbone.IOでつくるリアルタイムアプリ / MVCフレームワークの選択基準と主要フレームワークの特徴〜 …

ナビバーにバックボタンっぽい外見のバーボタンを置く

標準のバックボタンはイベントハンドラを登録できなかったり、背景を変更できなかったりするのでUIBarButtonItemに置き換えたい。が、これが簡単にできない。 戻るボタンの形のボタンタイプは公開されておらず、 以下のようにタイプコードをべた打ちしないと…

UISearchBarのplaceholderのフォントを変更する

UISearchBarのplaceholderのフォントは変更できないらしい。 ので、placeholder用UILabelを作ってUISearchBarのSubviewとして追加し、UISearchBarDelegateのsearchBarTextDidBeginEditingとsearchBarTextDidEndEditingの中でラベルを表示・非表示することでp…

UILabelはVertical Alignmentが出来ないらしい

まじかよ。。しょうが無いからUILabelのoriginを調節して位置を合わせました。 参考:iphone - Vertically align text within a UILabel - Stack Overflow

Macでバックスラッシュを入力する方法

MacにPC用キーボードをつないで使っていると、\キーを押しても_になるのでバックスラッシュは入力できないと思っていたがoptionを押しながら\で入力できるらしい。 知らなかった。 参考:失業とNSStringの改行とスクリーンショット - よせばいいのに

NodeでShift-JISのページをスクレイピングしたら文字化けする

Nodeは基本的にUTF8しか扱えないのでスクレイピングしてきた文字列がShift-JISとかだったらUTF8に変換してやる必要がある。 が、node-iconvを使って変換しても文字化けが直らず困った。 調査してみると、どうもrequestライブラリがHTMLを取ってきたときに文…

UIButtonのtitleが表示されなくて困った

以下のコードを実行してもボタンのタイトルが表示されない。 self.customButton = [BarButton buttonWithType:UIButtonTypeCustom]; self.customButton.titleLabel.text = @"編集"; 困っていろいろ調べたら、タイトルは専用のメソッドを使って設定するらしい…

resizableImageWithCapInsetsで不可解な挙動

resizableImageWithCapInsetsを以下のように設定してもうまくいかなかった。具体的にはボタンの背景画像がresizableImageWithCapInsetsを設定しない場合と同じように変にリサイズされてしまう。 UIImage *image = [UIImage imageNamed:@"list_header_btn_bg.…

backbone勉強リソース

http://recipeswithbackbone.com/toc.html https://github.com/addyosmani/backbone-fundamentals https://peepcode.com/products/backbone-js https://peepcode.com/products/backbone-ii https://peepcode.com/products/backbone-iiihttp://www.quora.com/…

JSクライアントサイドモジュールライブラリ

JSはファイル間の依存関係を管理する仕組みがないので、RequireJSなどを使って管理する。 このモジュールライブラリが意外といっぱいあるらしい。 CoffeeScript時代のモジュールシステムの選び方ガイド | netswitch! ライブラリの調査結果は上記がよくまとま…

coffeescriptスタイルガイド日本語訳

coffeescriptスタイルガイドを抄訳してみました。 訳文は不正確なところがあるので詳しくは原典を参照してください。 polarmobile/coffeescript-style-guide · GitHub コードレイアウト インデントはスペース2つとする。タブは使わない。 1行の最大文字数は…

coffeescriptの自動コンパイルをサブフォルダでも行う

全サブフォルダのcoffeescriptファイルを監視して変更があったら自動コンパイルするには以下のコマンドを実行する。 coffee -wc **/*.coffee"**"で再帰的にサブフォルダを取ってこれるんだね。。linux初心者なんで知らなかった。

非同期メソッドのテストとpredictableNextTick

非同期メソッドのテスト方法についての記事にちょっと面白そうなことが書いてあった。 Make Your Tests Deterministic - How To Node - NodeJS 内容は以下。 非同期なメソッドを複数回呼び出しているメソッドのテストは難しい。 その理由は非同期なメソッド…