【问题标题】:Resize view on tap点击调整视图大小
【发布时间】:2013-07-11 14:39:26
【问题描述】:

我有一个 UIView 作为用于绘制签名的面板,并且我想出了一些代码来在点击时扩展和收缩面板。它似乎工作得很好,但代码似乎很笨拙,我想知道是否有更好的方法来实现这一点。

我在视图中添加了一个轻击手势识别器,将其连接起来,并在我的.m 中有这个:

BOOL clientSigLarge;

- (IBAction)handleSigTap:(id)sender
{
    CGRect frame = self.clientSigView.frame;

    if (clientSigLarge)
    {
        frame.size.height -= 400;
        frame.size.width -= 350;
        frame.origin.x += 350;
        frame.origin.y += 400;
        self.clientSigView.frame = frame;
        clientSigLarge = NO;
    }
    else
    {
        frame.size.height += 400;
        frame.size.width += 350;
        frame.origin.x -= 350;
        frame.origin.y -= 400;
        self.clientSigView.frame = frame;
        clientSigLarge = YES;
    }
}

感谢任何提示。

【问题讨论】:

    标签: ios objective-c uiview uitapgesturerecognizer


    【解决方案1】:

    要使其更平滑,请使用动画块,如果您的缩放比例是固定的(如 2x、3x 等),则使用 CGAffineTransformScale

    [UIView animateWithDuration: 1
                          delay: 0
                        options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                     animations:^{myView.transform = CGAffineTransformScale(CGAffineTransformIdentity, xScaleValue, yScaleVale);}
                     completion:^(BOOL finished) { }
    ];
    

    所以在 if-else 条件下,只需更改 X 和 Y 比例值并使用相同的块。

    这是animations的参考链接

    希望这就是你要找的东西

    【讨论】:

    • 谢谢,我试试看。
    猜你喜欢
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多