我想将视图中的按钮放在固定点周围的圆圈中。我可以这样做:
button.layer.anchorPoint = CGPointMake(offsetX/button.frame.size.width, offsetY/button.frame.size.height);
button.transform = [self calculateLabelPositionFromFixedPointWithOffsetClockwiseInDegrees:commonAngleRatio*startSpacing*spacingRatio++];
其中calculateLabelPositionFromFixedPointWithOffsetClockwiseInDegrees:angleInDegrees是我写的一个函数给我CGAfflineTransformMakeRotation。
我希望按钮在显示视图时动画“轨道运行”到正确的位置。我尝试将一个定时器调用动画到“viewWillAppear”,但似乎没有工作。
编辑:我将UIViewController子类化了两次:
@interface HomeScreenAbstractParentController : UIViewController<UITableViewDelegate, UITableViewDataSource, UIGestureRecognizerDelegate, ContextActionDelegate, RemoteControlDelegate> {...}
和
@interface AnimatedController : HomeScreenAbstractParentController
{}
在AnimatedController中,以下方法不会被调用。我将AnimatedController的视图添加到homeScreenController的后面(如在Weather应用程序中),当用户按下按钮时,视图会翻转到它的背面。完成后,背面应该为控件设置动画。
-(void)viewWillAppear:(BOOL)animated
{
NSLog(@"viewWillAppear");
[super viewWillAppear:animated];
}
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"viewDidAppear");
[super viewDidAppear:animated];
[self animateControls:nil];
}
在上面应用程序生命周期的哪个阶段,我会安排计时器将按钮动画到位置?是我翻转视图的时候吗?
答案 0 :(得分:0)
:
-(void)viewDidAppear {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1]; //amount of seconds animation should run
button.transform = [self calculateLabelPositionFromFixedPointWithOffsetClockwiseInDegrees:commonAngleRatio*startSpacing*spacingRatio++];
[UIView commitAnimations];
}