【发布时间】:2013-07-06 18:49:07
【问题描述】:
旋转后我的视图大小重置有点问题,我无法修复它。
我在视图“bottomContainerView”上放置了一个“滑动”动作,大小因方向而异!
这是我的新代码:
-(void)swipeToggle:(UISwipeGestureRecognizer *)sender {
if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) {
if (sender.direction == UISwipeGestureRecognizerDirectionUp){
NSLog(@"if gesture up - LS");
[UIView animateWithDuration:0.5
delay:0.1
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
topContainerView.frame = CGRectMake(0.0, -160.0, 480.0, 244.0);
bottomContainerView.frame = CGRectMake(0.0, 0.0, 480.0, 300.0);}
completion:^(BOOL finished){
NSLog(@"%f,%f",bottomContainerView.frame.size.width,bottomContainerView.frame.size.height);
}];
} else if (sender.direction == UISwipeGestureRecognizerDirectionDown) {
NSLog(@"else if gesture down - LS");
[UIView animateWithDuration:0.5
delay:0.1
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
topContainerView.frame = CGRectMake(0.0, -160.0, 480.0, 244.0);
bottomContainerView.frame = CGRectMake(0.0, 84.0, 480.0, 216.0);}
completion:^(BOOL finished){
NSLog(@"%f,%f",bottomContainerView.frame.size.width,bottomContainerView.frame.size.height);
}];
}
}
else if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait) {
if (sender.direction == UISwipeGestureRecognizerDirectionUp) {
NSLog(@"if gesture down - PT");
[UIView animateWithDuration:0.5
delay:0.1
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
topContainerView.frame = CGRectMake(0.0, 0.0, 320.0, 244.0);
bottomContainerView.frame = CGRectMake(0.0, 0.0, self.view.frame.size.width, 640.0);
}
completion:^(BOOL finished){
NSLog(@"%f,%f",bottomContainerView.frame.size.width,bottomContainerView.frame.size.height);
}];
}
else if (sender.direction == UISwipeGestureRecognizerDirectionDown) {
NSLog(@"else if gesture up - PT");
[UIView animateWithDuration:0.5
delay:0.1
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
topContainerView.frame = CGRectMake(0.0, 0.0, 320.0, 244.0);
bottomContainerView.frame = CGRectMake(0.0, 244.0, self.view.frame.size.width, 216.0);
}
completion:^(BOOL finished){
NSLog(@"%f,%f",bottomContainerView.frame.size.width,bottomContainerView.frame.size.height);
}];
}
}
}
发布更新 - 这是我的新代码与您教给我的内容正确,请解释一下 ;-)
【问题讨论】:
-
你的动画代码是一团糟。为什么要在基于块的动画旁边使用 commitAnimations /beginAnimations?
-
只是因为我是新手!但也许你可以向我解释为什么我做错了,以及如何做得更好而不是批评?
-
尤其是因为你似乎是一个优秀的 iOS 开发者!
标签: ios animation uiview rotation