初歩的な質問で申し訳ありませんが、私はCGデータ型のためにobjective-cで構造体を使い始めています。新しい CGRect を作成し、それを何らかの view.frame に設定すると、それらはメモリ内の同じものを指すようになりますか? それとも、これらは 2 つの別個のオブジェクトであり、一方を変更しても他方は変更しないのでしょうか? どうも。
何が起こっているのかというと、私は CGRect を作成し、それを自分の view.frame に設定しています。次に、データに基づいて、frame.size.height を更新します。しかし、私のelseステートメントでは、元のサイズに戻したいので、別のオブジェクトを選択すると、フレームが大きくなります。フレームを小さいサイズに設定すると、そのサイズのままのようです。
CGRect frameToCenter = self.SView.frame;
CGFloat originalHeight = self.SView.frame.size.height;
//CGFloat originalHeight = 500.0; //if I hardcode it works.
if ([self.array count] == 1) {
frameToCenter.size.height = totalRowHeight;
}
else {
frameToCenter.size.height = originalHeight;
}
self.SView.frame = frameToCenter;
何もハードコーディングしたくありませんが、基本的な機能を機能させたかったので、配列に1しかないときに始めました。そして、他の数値の場合、ビューは元のサイズに戻ります。しかし、最初の if ステートメントに到達すると、高さが変更されることはありません。元に戻す唯一の方法は、このブロックの前に CGFloat 値をハードコーディングすることです。