0

我在 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 没有被注释掉,那么弹出位置就会被忽略。这对我来说没有意义

4

0 回答 0