我有一个包含子视图interface
的视图touchWheel
。点击interface
上的最小化按钮,我想执行转换&将视图发送到屏幕的右下角。问题是我想“分离”touchWheel
视图&将其与父视图interface
分开发送到角落后面(&实际上淡出)。
当我尝试这个时,我遇到了一个问题。我的动画最初工作得很好根据需要,touchWheel
会被发送到底角。当touchWheel
距目的地一半时,我会为interface
设置动画,使其跟随touchWheel
。
interface
开始制作动画后,它似乎可以控制touchWheel
& touchWheel
改变了方向。
似乎interface
仍然保留对touchWheel
的控制权,因为它是其父视图。
- (void)hideInterfaceButtonClicked : (id) sender
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"RemoveGrey" object:self];
//Remove Views & transform
[touchWheel removeViews];
interfaceHidden = YES;
//Send Interface to corner
[UIView animateWithDuration:1.25
delay:0.0
options:UIViewAnimationCurveEaseIn
animations:^{
// Move to the right
CGAffineTransform translateInterface = CGAffineTransformMakeTranslation(437,200);
// Scale
CGAffineTransform scale = CGAffineTransformMakeScale(0.135,0.135);
// Apply them to the view
self.transform = CGAffineTransformConcat(scale, translateInterface);
self.alpha = 0.0;
} completion:^(BOOL finished) {
NSLog(@"Animation Has Stopped");
[[NSNotificationCenter defaultCenter] postNotificationName:@"hiddenInterfaceViewNeeded" object:self]; //after MoveView finishes
}];
}
对touchWheel
之外的其他内容进行interface
子视图会产生其他问题,这些问题会使事情进一步复杂化。
任何想法如何解决这个问题?任何提示非常感谢:)
答案 0 :(得分:2)
您可以执行以下操作:
touchWheel
移至interface
的超级视图,使用convertRect:toView:
重新计算其框架,以便touchWheel
看起来具有相同的窗口坐标。touchWheel
作为interface
的子视图,再次重新计算其帧。它似乎并不太复杂,但有一点需要注意:您可能希望暂时禁用最大化按钮(或任何适当的控件)以防止动画期间的最大化操作。否则,这种方法将导致不可预测的结果。