我有 iPhone 应用程序。
我希望在加载视图时它具有子视图。我还希望像在动画中从左到右翻转或滑动一样加载子视图。
subView 包含 UIButton 和 TextView。我希望 subView 应该像从左侧滑动一样加载动画。
我有 iPhone 应用程序。
我希望在加载视图时它具有子视图。我还希望像在动画中从左到右翻转或滑动一样加载子视图。
subView 包含 UIButton 和 TextView。我希望 subView 应该像从左侧滑动一样加载动画。
翻转视图可以如下完成:
[UIView animateWithDuration:1 animation:^{
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.subView cache:FALSE];
}];
这是我的完整代码:
- (void) flipCard {
if (_isDisplayBackOfCard) {
[UIView animateWithDuration:.5 animations:^{
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:FALSE];
[self.backOfCard removeFromSuperview];
[self.view addSubview:self.frontOfCard];
} completion:^(BOOL finished){
_isDisplayBackOfCard = !_isDisplayBackOfCard;
}];
}
else {
[UIView animateWithDuration:.5 animations:^{
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:FALSE];
[self.frontOfCard removeFromSuperview];
[self.view addSubview:self.backOfCard];
} completion:^(BOOL finished){
_isDisplayBackOfCard = !_isDisplayBackOfCard;
}];
}
}
通过在动画块内设置视图框架可以轻松实现滑动视图:
CGRect _newFrame = CGRectMake(someValueForX, someValueForY, someValueForWidth, someValueForHeight);
[UIView animateWithDuration:.5 animations:^{ [self.subView setFrame:_newFrame];}];
好的。当您想添加带有滑动动画的子视图(而不是容器视图 - 我已经通过您的问题预测到了!)时,请按照以下步骤操作 -
IBOutlet
为您的按钮和文本视图创建synethesize
它们在 .m 文件中。编写以下代码 -
- (void)viewWillAppear:(BOOL)animated
{
self.btn.center = CGPointMake(-430.0, 211.0);
self.txtView.center = CGPointMake(-430.0, 120.0);
[self addSubview:self.btn andMoveTo:CGPointMake(115.0, 211.0) duration:1.0 option:UIViewAnimationOptionCurveLinear];
[self addSubview:self.txtView andMoveTo:CGPointMake(40.0, 34.0) duration:1.0 option:UIViewAnimationOptionCurveLinear];
}
- (void) addSubview:(UIView*)view
andMoveTo:(CGPoint)destination
duration:(float)secs
option:(UIViewAnimationOptions)option
{
[UIView animateWithDuration:secs delay:0.0 options:option
animations:^{
view.frame = CGRectMake(destination.x,destination.y, view.frame.size.width, view.frame.size.height);
}completion:nil];
[self.view addSubview:view];
}
您可以通过在 view 方法中添加 subView 来做到这一点,viewDidLoad
并且在该viewDidAppear
方法中您可以使用动画 using block 语句来给它一些动画。
快乐编码:)
编辑 1
在这里,我在 XIB 中添加了 scrollView 附加IBOutlate
到它。您可以以编程方式将其添加到viewDidLoad
方法中。
首先我通过应用这个框架来隐藏视图
subCatScroll.frame = CGRectMake(320, 0, 91, 436);
并在某个按钮上单击我通过动画显示它(它来自 iPhone 的右侧边缘)
- (IBAction)done:(id)sender
{
[Appirater userDidSignificantEvent:YES];
if(pointer.hidden == YES)
{
[UIView beginAnimations:@"Move Me To Unhide" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:kAnimationDur];
subCatScroll.frame = CGRectMake(229,0,91,436);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
[self configureView];
pointer.hidden = NO;
}
else
{
[UIView beginAnimations:@"Move Me To Hide" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:kAnimationDur];
subCatScroll.frame = CGRectMake(320, 0, 91, 436);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
pointer.hidden = YES;
}
}
这pointer
是一个用于决定如何处理 scrollView 的控件