iOS QuickDialogのひとつのelementsのappearanceをいじったら全部の見栄えが変わってしまう件
ハマりました。
// NG [self.root elementWithKey:@"hoge"].appearance.backgroundColorEnabled = [UIColor redColor];
これでやると、なぜか他のelementの色も変わっちゃう!(?_?)
いろいろデバッグしたりしてかなり彷徨っていたんですが、
// OK QAppearance *appearance = [QAppearance new]; appearance.backgroundColorEnabled = [UIColor redColor]; [self.root elementWithKey:@"hoge"].appearance = appearance;
これで解決しました。なんて事はない、appearanceごと変えなきゃいけなかったんですね。そして、初期状態では全てのelementsは同じインスタンスのappearanceを見ているんですね。効率化のためなのでしょう。
でも、そのおかげでよけいに迷った・・・。
なんかframeの変更の仕方を思い出しました。
CGRect frame = view.frame; frame.size.height += addValue; view.frame = frame;
これも最初よく間違えてました。