刚开始使用iOS开发,请原谅我的无知。我也在这个主题上搜索了一段时间没有成功,但我确定我没有找到合适的条款。
如果我注释掉第一个for循环中的唯一一行,那么下一个for循环似乎完全符合我的预期。如果我把它们都留在那里,我只会看到CG发生的事情而其他物体静止不动。
对象currentGear的转换与在同一视图中的另一个对象上更改的帧有什么关系?为什么执行转换会使其后的帧更改无效?
for (UIImageView *currentGear in self.imageGearCollection)
{
currentGear.transform = CGAffineTransformRotate(currentGear.transform, (90*M_PI)/180);
}
for (UIButton *currentCrate in self.buttonCrateCollection)
{
CGRect rectFrame = currentCrate.frame;
rectFrame.origin.x += 10;
currentCrate.frame = rectFrame;
}
答案 0 :(得分:1)
你的问题与Core Graphics没有任何关系。
UIView Class Reference说明frame
:
警告:如果
transform
属性不是标识转换,则此属性的值未定义,因此应忽略。
所以你所做的事情并非真正允许。
由于您只是想移动视图而不是更改其大小,因此可以通过修改其center
属性来实现:
CGPoint center = currentCrate.center;
center.x += 10;
currentCrate.center = center;