
夏モードが終わってすっかり涼しくなってきたが、日中の日差しがまだまだ日焼けしそうな感じのする日頃です。
よくよく考えると年間とおして一番過ごしやすい気候なのかもしれんね。
3連休もずっとiPhoneアプリの開発をしていたワケだが、とことんハマったので、ブログっておきます。
そもそも、ブックリーダーアプリを作っていて、表示している画像サイズがちょいちょいおかしくなる現象があったが、対象のオブジェクトにtagをつけたりしてなんとかしのいでいたが、一度思い切ってリファクトしようと思って、コードを1から書きなおしていた時に、UIScrollViewの内部をチェックしてsubScrollViewを検索していた時に、何故かUIImageViewが2つほど余分に一覧に入ってくる事に気がついた。
こいつは、alphaが0になっていて、画像サイズも3.5ピクセルと7ピクセルという2つの画像。
なんじゃこりゃ、画像を表示してみても、なんかグラデのついたグレー画像・・・ほんとになやんだ。
ハマった原因は、
viewDidLoad
viewWillAppear
の時点では、このオブジェはなく、
viewDidAppear
のタイミングで現れる。
思いついたのは、こいつは、ScrollViewのスクロールバーなのではないだろうか??
画像を見てもサイズを見てもそんな感じだ。
こっちは、オブジェクト管理を一生懸命やっていたのに、こんなゴミがくっついていたとは・・・!
まあ、削除しても、エラーはでなかったんだが、不具合の元になるので、やめておこうとおもった。
原因がわかると簡単で、やはりtagやalphaを判定して、ループ無いからこいつらを除外すれば、想定通りの動きをするようになった。
たしかにリスト内のゴミは気になるが、web開発と同じで、こういったパーツも必要要素と割り切るしかなさそうだ。
おそらくSUIScrollViewにくっついてきてるんだろうな・・・
0 件のコメント:
コメントを投稿