当我尝试使用动画时,我使用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框架大小。
答案 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) {
}];