14 | 12月 | 2012 | HMDT Blog

カテゴリー : 2012年 12月14日

deprecatedには、こまめに対応しないといかん


UIImageを引き延ばして利用するために、昔からstretchableImageWithLeftCapWidth:topCapHeight:っていうメソッドがあった。これ、iOS 5.0でdeprecatedになって、resizableImageWithCapInsets:を使え、ってことになっている。

Deprecatedになったメソッドの嫌らしいところは、この宣告がなされたとしても、とりあえずは使える。ビルドは通るし、実行もできる。だけど、バージョンアップを繰り返してある日気付くと、あれ?なんか動作がおかしい。調べてみると、deprecatedのせいだったりする。

最近問題になっていたのは、UISliderのsetMinimumTrackImage:とsetMaximumTrackImage:。スライダーの背景画像を設定するためのメソッドだ。これが、iOS 5.0までは問題なかったのに、6.0からどうも挙動が怪しい。描画が乱れるときがある。でも、毎回必ずって訳でもなくて、ちゃんと動いているときもある。

なんでだろう、とあちこちいじってたら、設定する画像をstretchableで引き延ばしていたのが問題だった。resizableにしたら、期待通りの動作になった。分かりにくいよー。

一見動作しているように見えても、後のバージョンのことを考えると、deprecatedにはこまめに対応するのが必要だ、と思わせる事でした。

Google Maps SDK for iOSがきた


Google Maps SDK for iOSがきたー!

ということで、ダウンロードして絶賛テスト中。