タグ

ブックマーク / akisute.com (24)

  • Objective-C がこの四年間でどれぐらい進化したのか一目でわかるテストケース

    Twitterに流したら思ったよりも好評でしたので、ブログにも上げておきます。 こちらがiOS 2地点でのNSURLConnectionクラスを使った非同期通信のテストケース。 こちらがiOS 5でのNSURLConnectionクラスを使った非同期通信のテストケース。 Blocksはやっぱり偉大です。一つしかテストケースがないうちはまだマシなのですが、これが10個とかになると楽さが全く違ってきます。ぜひためしにURLだけ変えて同じテストケースを10個作ってみてください。iOS 5のBlocksを使ったコードはほとんどコピペだけで終わりますが、iOS 2でのdelegateを使ったコードは他にも変更しなければならない点が多数出てくるはずです。 また実際にこのコードを走らせてみると、理由はよくわからないのですがiOS 5で追加されたAPIを使ったコード(Blocks)のほうがそうでないコード

    Nyoho
    Nyoho 2012/03/08
  • CALayer を使って UIImage を描画する

    UIImage を高速で描画する必要がある案件に遭遇したため、 CALayer を使ってみました。 CALayer と聞くとなにやら難しい感じがしますが、実際に使ってみると非常に簡単で高速です。 CALayer を使うと良い場面は以下のような場合です。 画像を大量に描画する必要がある 画像を高速に描画する必要がある 画像を高速に変形・移動する必要がある CGContextDrawImage を今使っている箇所がある とくに変形に対して非常に強いです。 CGContextDrawImage で変形後の UIImage を再度描画し直したりするのに比べると、 CALayer の変形は格段に高速に動作します。 ■実際に描画してみる まず最初に <QuartsCore/QuartsCore.h> をインポートします。 QuartzCore.framework をプロジェクトに追加するのも忘れないよ

    Nyoho
    Nyoho 2011/12/05
  • UIWebView.scrollView に対して KVO を使うと色々面白い

    iOS 5より、UIWebViewにscrollViewプロパティが追加され、たとえばスクロールを無効にしたりステータスバーをタップしても一番上に戻らないようにしたりなど、UIWebViewのスクロール周りの処理を外から自由に触れるようになりました。ですが便利なのはこれだけではありません。KVOの仕組みを使うことで、さらにUIWebViewを便利に使うことができます。ここでは私が使っている中で一番のおすすめをご紹介します。 ■UIWebViewの描画しているHTMLのcontentSizeを非同期的に、リアルタイムで取得する UIWebview.scrollViewのcontentSizeプロパティは、UIWebViewの描画しているHTMLの大きさ(contentSize)と同じ値になります。この性質を利用して、contentSizeプロパティにKVOを貼ると、UIWebViewの描画し

    Nyoho
    Nyoho 2011/11/19
  • UIWebView のスクロールを制御するためのプロパティを書いてみた

    UIWebView にどうして scrollEnabled プロパティがついてねえんだ Apple のチンパンジー野郎!とお嘆きの全国1000万の iOS 開発者の皆様、こんばんわ。もちろん私もその一人であります。 嘆いていてもしょうがないので何とかスクロールを制御する方法を・・・と思って探していたら、すでに2009年の地点で @nakamura001 さんがこんなブログを書いてらっしゃいました。 http://d.hatena.ne.jp/nakamura001/20090520/1242837408 が、遷移先で詳解されている http://praveenmatanam.wordpress.com/2009/04/03/how-to-disable-uiwebview-from-user-scrolling/ のコードが正直いまいちなのです。何がいまいちって、せっかくのCocoa環境で

    Nyoho
    Nyoho 2011/02/28
    すばらしい!