Извините за вопрос noob, но я начинаю использовать структуры в target-c для типов данных CG. Если я создаю новый CGRect и задаю ему какой-то view.frame, указывают ли они теперь на одно и то же в памяти? Или это два отдельных объекта, и если я изменю один, я не изменю другой? Thx.
Что происходит, я создаю 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 перед этим блоком.