抱歉这个菜鸟问题,但我开始在objective-c中使用结构来处理CG数据类型。如果我创建一个新的 CGRect,并将其设置为某个 view.frame,它们现在是否指向内存中的同一事物?或者它们是两个独立的对象,如果我改变一个,我不会改变另一个?谢谢。
发生的事情是我正在创建一个 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 值。