【问题标题】:iOS - squish an image verticallyiOS - 垂直挤压图像
【发布时间】:2012-02-02 23:47:29
【问题描述】:

我有一个圆形图像,我想将其垂直“挤压”,使其看起来更像一条水平线,然后将其展开回原始形状。我认为这可以通过将图层的锚点设置为中心,然后通过 UIViewAnimation 为帧设置动画,帧的高度为 1。

[self.imageToSquish.layer setAnchorPoint:CGPointMake(0.5, 0.5)];

CGRect newFrame = CGRectMake(self.imageToSquish.frame.origin.x, self.imageToSquish.frame.origin.y, self.imageToSquish.frame.size.width, 1 );
[UIView animateWithDuration:3
                 animations:^{self.imageToSquish.frame = newFrame;}
                 completion:nil];

但图像会向顶部而不是中心收缩。

【问题讨论】:

    标签: ios uiview layer uiviewanimation


    【解决方案1】:

    你给它一个框架,它的原点——在左上角——与它开始的位置相同。你可能想做更多这样的事情,增加一半的图像高度:

    CGRect newFrame = CGRectMake(self.imageToSquish.frame.origin.x, self.imageToSquish.frame.origin.y + self.imageToSquish.frame.size.height / 2, self.imageToSquish.frame.size.width, 1);
    

    另外一种更有效的方法是,您可以将图像视图的transform 属性设置为CGAffineTransformMakeScale(1, 0.01),而不是弄乱它的框架。它将以图像的中间为中心,您可以通过将转换设置为 CGAffineTransformIdentity 轻松撤消它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      相关资源
      最近更新 更多