我有这个问题,我已经设置了并且在触摸其中的一个之后他们必须移动,所以我使用动画实现了此功能,并且工作正常。但在动画完成后,我正在执行一个模态赛格,问题在于模态赛格开始时,从底部提高新的UIView
,返回到他们以前的位置,在那里我将它们设置在Storyboard
中,并且它看起来很糟糕。我怎么解决这个问题? 下面是我使用在动画之后执行塞格动画,但动画物品恢复到原来的位置
@property (strong, nonatomic) IBOutlet UIButton *maleBtn;
@property (strong, nonatomic) IBOutlet UIButton *femaleBtn;
- (void)viewDidLoad
{
[super viewDidLoad];
[_maleBtn addTarget:self
action:@selector(chooseGender:)
forControlEvents:UIControlEventTouchUpInside];
[_femaleBtn addTarget:self
action:@selector(chooseGender:)
forControlEvents:UIControlEventTouchUpInside];
}
- (IBAction)chooseGender:(id)sender
{
CGRect maleFrame;
CGRect femaleFrame;
if (sender == _maleBtn) {
maleFrame = self.maleBtn.frame;
maleFrame.origin.x = (self.view.bounds.size.width/2) - 15;
femaleFrame = self.femaleBtn.frame;
femaleFrame.origin.x = self.view.bounds.size.height;
}
else {
maleFrame = self.maleBtn.frame;
maleFrame.origin.x = -self.view.bounds.size.height;
femaleFrame = self.femaleBtn.frame;
femaleFrame.origin.x = (self.view.bounds.size.width/2) - 15;
}
[UIView animateWithDuration:0.5
delay:0.5
options:UIViewAnimationCurveEaseOut
animations:^{
_maleBtn.frame = maleFrame;
_femaleBtn.frame = femaleFrame;
}
completion:^(BOOL finished){
if(sender == _maleBtn)
[self performSegueWithIdentifier:@"toMale" sender:self];
else
[self performSegueWithIdentifier:@"toFemale" sender:self];
}];
}
你有什么东西在你的viewWillAppear?你有没有尝试过使用CGRectMake进行定位? –
没有这是我的所有.m没有别的,只是我在故事板中的那些位置设置按钮 – r4id4
只需要在你的完成尝试它,把它放在:_maleBtn.frame = CGRectMake(100,100,20,20) ;在赛前。执行搜寻并关闭并查看按钮是否已变回原始位置。或者如果它调整大小并移动。 –