我在 Xcode 中有一个大位图,上面放置了一个弹出窗口(UIView)。默认情况下,它是隐藏的,按下按钮时可见。当可见时,设置了 ax/y 位置......并且它可以工作。
定位后,我希望弹出窗口具有比例效果。这也有效;但是,x/y 定位被忽略,弹出窗口只出现在情节提要编辑器中的位置。
// Set position
minPopupFrame.origin.x = (_destinationensKoordinater[0] - minPopupFrame.size.width/2 + offsetX) * zoomfaktor;
minPopupFrame.origin.y = (_destinationensKoordinater[1] - minPopupFrame.size.height + offsetY) * zoomfaktor;
_popup.frame = minPopupFrame;
// Scale it to .1
_popup.transform = CGAffineTransformMakeScale(.1, .1);
_popup.hidden = NO;
// Set size to 100% in .3 seconds
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.3];
_popup.transform = CGAffineTransformMakeScale(1, 1);
[UIView commitAnimations];
这是非常基本的编码 - 但为什么它不起作用?建议,漂亮吗?
编辑:我也尝试过这样的事情 - 但代码被完全忽略:
_popup.hidden = NO;
CGAffineTransform scale = CGAffineTransformMakeScale(1, 1);
CGAffineTransform translate = CGAffineTransformMakeTranslation(200, 200);
CGAffineTransform transform = CGAffineTransformConcat(translate, scale);
_popup.transform = transform;
编辑二:我也试过这个:
_popup.center = CGPointMake((_destinationensKoordinater[0] - minPopupFrame.size.width/2 + offsetX) * zoomfaktor, (_destinationensKoordinater[1] - minPopupFrame.size.height + offsetY) * zoomfaktor);
_popup.transform = CGAffineTransformMakeScale(.1, .1);
_popup.alpha = 0;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.3];
_popup.alpha = 1;
_popup.transform = CGAffineTransformMakeScale(1, 1);
[UIView commitAnimations];
有趣的是,alpha 动画可以工作,但是如果第一行 _popup.transform 没有被注释掉,那么弹出位置就会被忽略。这对我来说没有意义