UIView 和 ScrollView 之间的 UIView 过渡翻转
Posted
技术标签:
【中文标题】UIView 和 ScrollView 之间的 UIView 过渡翻转【英文标题】:UIView transition flip between UIView and ScrollView 【发布时间】:2013-09-06 10:21:03 【问题描述】:我在 UIView 和 UIScrollView 之间做一个翻转动画。翻转动画没问题。问题是我不能在两个视图之间来回翻转。检查我的代码。 我有一个名为 mapViewShowing 的 BOOL 变量来检查当前视图。
当我点击栏按钮时,我的初始视图是滚动视图,视图将在地图视图和滚动视图之间切换。 我可以在两个视图之间翻转两次。之后翻转动画在地图视图处停止并且不能再翻转。 两个视图都在同一个父视图下。请帮帮我。谢谢。
if(!mapViewShowing)
[UIView transitionFromView:self.scrollView
toView:self.mapView
duration:1
options:UIViewAnimationOptionTransitionFlipFromLeft
completion:^(BOOL finished)
mapViewShowing = YES;
];
else
[UIView transitionFromView:self.mapView
toView:self.scrollView
duration:1
options:UIViewAnimationOptionTransitionFlipFromRight
completion:^(BOOL finished)
mapViewShowing = NO;
];
【问题讨论】:
尝试在容器 uiview 中添加滚动视图,然后使用相同的代码。 第二次翻转后仍然卡住 【参考方案1】:这行得通
在 .m 文件中
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[container addSubview:page1]; //You need a container view should have the same size as
//as the view that you will animate
mainViewVissible=YES;
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (IBAction)doFlip:(id)sender
[UIView transitionFromView: (mainViewVissible ? page1:page2)
toView: (mainViewVissible ? page2 : page1)
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromLeft
completion:^(BOOL finished)
mainViewVissible=!mainViewVissible;
/* do something on animation completion */
];
在.h文件中
@property (weak, nonatomic) IBOutlet UIView *container;
@property (strong, nonatomic) IBOutlet UIView *page1; //I have the view in the nib
@property (strong, nonatomic) IBOutlet UIView *page2;
@property (weak, nonatomic) IBOutlet UIButton *flipBtn;
希望这会有所帮助
【讨论】:
【参考方案2】:要来回过渡,您应该将UIViewAnimationOptionShowHideTransitionViews
添加到两个过渡动画的options
参数中。你的options
参数应该是UIViewAnimationOptionShowHideTransitionViews | UIViewAnimationOptionTransitionFlipFromLeft
【讨论】:
以上是关于UIView 和 ScrollView 之间的 UIView 过渡翻转的主要内容,如果未能解决你的问题,请参考以下文章
在 ScrollView 的 ContentView 中拉伸 UIView