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 allod] init];
view.backgroundColor = [UIColor redColor];
}
@end
と書かなければならない箇所を、
@implements UICustomView
UIView view;
- (void)changeColor {
view = [[UIView allod] init];
view = [[UIView allod] init];
view.backgroundColor = [UIColor redColor];
}
@end
と書いていたため、なんか共通化されていたっぽいのですよ!!
でも、別にクラス変数ではないのですよね・・・他のクラスからは呼べないし。
もう、細かいところまで調査する元気が無いのですが、まぁそんな感じです。
@propertyを使うか使わないかは、getter、setterの自動生成だけではないのね・・・知らなかった・・・。
明日、もし元気になったら続き調べます。。。
うき。
と書いていたため、なんか共通化されていたっぽいのですよ!!
でも、別にクラス変数ではないのですよね・・・他のクラスからは呼べないし。
もう、細かいところまで調査する元気が無いのですが、まぁそんな感じです。
@propertyを使うか使わないかは、getter、setterの自動生成だけではないのね・・・知らなかった・・・。
明日、もし元気になったら続き調べます。。。
うき。