Ukisoft for Ameba Blog Only -78ページ目

Ukisoft for Ameba Blog Only

人生に悩む社会人8年目の徒然日記へようこそ。

あー、本当、マジ最低なことでした。
UITableViewCellカスタマイズするときに、再利用が原因で処理が上手く動かないと、いろいろ調べていたのですけど、使いまわししてても、きちんと対象のインスタンスを指定して処理を動かせていたのです。

だったらなぜ!!?

実は、UITableViewCustomCellの上にUICustomViewをaddSubviewして、さらにUICustomViewにUIViewをaddSubviewしていおり、そのUIViewに対して色の変更を行う処理を動かそうとしていました。
これが動かなかったのですが、ずーっと、UICustomViewのインスタンスが正しく指定できないことが原因だと思っていたのですが、そうではなく、それにaddSubviewしたUIViewこそが使いまわされていたのでした!!!!
ので、UICustomViewは正しく指定できていたので、なかなか解決できなかったのです。

で、なぜUIViewが使いまわされていたかというと・・・この部分が最低なのですが、本来であれば、メソッドファイルに、

@interface UICustomView()
@property (nonatic, retain) UIView *view;

@end


@implements UICustomView

@synthesize view;

- (void)changeColor {
    view = [[UIView allodinit];
    view.backgroundColor = [UIColor redColor];
}

@end


と書かなければならない箇所を、

@implements UICustomView

UIView view;

- (void)changeColor {
    view = [[UIView allod] init];
    view.backgroundColor = [UIColor redColor];
}

@end

と書いていたため、なんか共通化されていたっぽいのですよ!!
でも、別にクラス変数ではないのですよね・・・他のクラスからは呼べないし。

もう、細かいところまで調査する元気が無いのですが、まぁそんな感じです。
@propertyを使うか使わないかは、getter、setterの自動生成だけではないのね・・・知らなかった・・・。
明日、もし元気になったら続き調べます。。。


うき。
徹夜で考えまくって、挫折しました・・・。
UITableViewCustomCellにtouchesBeganなどの処理を書いて、そこに乗せたUICustomViewをコントロールしようと思っているのですが、

UITableViewCustomCellにUICustomViewのポインタを渡す
 →上書きされてしまう

UITableViewCustomCellにUICustomViewのポインタを配列で渡す
 →どれをtouchしているのかわからない

eventから、touchしているUICustomViewを特定して、cellを特定する
 →cellのcontentViewとか、UICustomViewに乗せた別のUIViewとかに邪魔される

UITableViewのdidSelectedを使う
 →まだ選択されてないので、処理が走らない

とか、まぁ、いろいろ試したのですがダメでした。。。

で、結論。
Cellの再利用をやめよう。。。もうこれしかない(´・ω・`)

-------------------

あ、もしかして、UITableViewをカスタムすればいいんじゃない?
やってみよう。


うき。
今度は、UITableViewCustomCellと、それにのせるUICustomViewに、相互にポインタを渡そうと思ったら、ループするからやめろってコンパイルに怒られました・・・。
うおおおおお!だったら、Cellにのせてたtouches***処理をViewに持ってってやれば良いんじゃねーかな!!
というわけで、移植中。

-------

うっ、動かない・・・(´;ω;`)

うき。
UITableViewCellで超苦しんでます。
Cellのインスタンスは、再利用されちゃうので、UILabelのポインタをCellClassで持っていて、CellにTouchされた時に、そのUILableのtextを変えようと思っても、ポインタには最後に描写されたCellに使ったUILabelが入っているので、TouchしたCellのUILabelのtextが書き換わってくれないのです。
色々悩みましたが、今回はUILabel用の配列をCellClassでもって、Touchされた箇所を引数に、配列から正しいUILabelのポインタを探しに行くという処理を付け加えればいいのではないかなと思います。

というわけで、実装するぜ!


うき。
両シリーズ、全部見ました。
くっそおもしろいΣ(゚Д゚)
ロッキーの曲聴くと、無条件でやる気出るようになりましたし、Back to the Futureのテーマ曲を口ずさむようにもなったし・・・。
いやー、名作ですなぁ(*'ω'*)


うき。

岩亀

RPGの敵に出てきそうな亀を見に行きました(*'ω'*)
すげーぜ!!


うき。

電車

友達と旅行に行ってきたときの1枚。
「すげー!2両編成だ!!」と友達が驚いていましたけど、うちの地元は1両も普通だったぜ( `ー´)ノ

久々にのんびりできました。


うき。