CGAffineTransformMakeTranslation更改帧高度

时间:2015-12-03 13:58:48

标签: ios animation cgaffinetransform

当我尝试使用动画时,我使用CGAffineTransform,但翻译只是改变了帧大小,我找不到问题。这是代码:

NSLog(@"%.2f", self.scrollView.frame.size.height);
CGAffineTransform scrollViewTransform = CGAffineTransformMakeTranslation(0, 0);
self.scrollView.transform = scrollViewTransform;
NSLog(@"%.2f", self.scrollView.frame.size.height);

日志中的帧大小已更改:

2015-12-03 21:51:42.455 Travel[12217:1015615] 608.00
2015-12-03 21:51:42.455 Travel[12217:1015615] 672.00

在viewDidLayoutSubviews中设置的scrollview框架大小。

1 个答案:

答案 0 :(得分:0)

实际上问题不在上面的转换代码中。

您的问题可能在 viewDidLayoutSubviews 中,因为它被多次调用。因此,您必须在 viewDidLayoutSubviews中检查您的代码。

如果您想使用transform来移动您的内容,您可以使用下面的代码从右到左动画移动对象: -

yourView.transform=CGAffineTransformMakeTranslation((yourView.frame.size.width+yourView.frame.size.width),0);
[UIView transitionWithView:yourView
                          duration:1.0
                           options:UIViewAnimationOptionTransitionCrossDissolve
                        animations:^{
                            yourView.transform=CGAffineTransformMakeTranslation(0,0);
                        }
completion:^(BOOL finished) {
}];