标签: cgaffinetransformscale

缩放UIButton动画 - Swift

我正试图UIButton在点击时进行缩放动画,但我想要完成的是当按钮点击时我需要UIButton更小到内部然后它回到相同的大小(像气泡).

我尝试了以下方法:

button.transform = CGAffineTransformMakeScale(-1, 1)

UIView.animateWithDuration(0.5, animations: { () -> Void in

    button.transform = CGAffineTransformMakeScale(1,1)

})
Run Code Online (Sandbox Code Playgroud)

ios cgaffinetransformscale swift

65
推荐指数
8
解决办法
7万
查看次数

动画增长/减小尺寸imageView iOS

我正在尝试使用CGAffineTransformMakeScale为自定义按钮设置动画,如下所示:

if (stateButton == 0) { //The button is gonna appear

    self.selected = YES;

    self.imageView.transform = CGAffineTransformMakeScale(0.01, 0.01);

    [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
        // animate it to the identity transform (100% scale)
        self.imageView.transform = CGAffineTransformIdentity;
    } completion:nil];

}
else if (stateButton ==1) { //The button is gonna disappear


    self.imageView.transform = CGAffineTransformMakeScale(1, 1);

    [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
        // decrease button
        self.imageView.transform = CGAffineTransformMakeScale(.01, .01);
    } completion:^(BOOL finished){

        self.selected = NO;
    }];
}   
Run Code Online (Sandbox Code Playgroud)

按钮完美地增长到原始大小,但是,我不知道原因,但是当我点击按钮减少它时,它从原始尺寸大100%的尺寸减小到原始尺寸,而不是开始如我在代码中所示,原始尺寸减小并达到0.01的标度.

请帮忙!!

uiimageview cgaffinetransform ios cgaffinetransformscale

19
推荐指数
2
解决办法
2万
查看次数

UIView:如何"重置"转换.CGAffineTransformScale无法正常工作

我认为我的问题可以归结为如何存储和重置视图的转换.但随后解释我的情况可能有所帮助.

如果我将下面的变换一个接一个地应用到视图中(就像我将此代码添加到开关或按钮一样).我得到了我期望的完全结果:比例在:原始视图大小的.55倍的视图和原始比例的视图之间切换.也可以按照我的意愿扩展someView的子视图.广告无限.完善.

//tranformScale 1
someView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.55, 0.55 );
//tranformScale 2
someView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0 );
Run Code Online (Sandbox Code Playgroud)

麻烦的是我想使用这个代码(或类似的)来缩放self.view的子视图,当iOS设备进入横向时,将子视图适合横向屏幕(并在纵向时备份).它几乎可以工作,但由于某种原因而不是为要缩放的视图的帧输出圆值(如使用按钮调用变换的测试所发生的那样),会产生逐渐奇怪的值.最终,在大约4次旋转后,子视图飞离屏幕.我怀疑它与self.view改变形状有关,但是当我记录self.view的框架时,它的形状是非常可预测的.

顺便说一下,我使用autoresizingMask灵活边距来居中视图,而不是使用自动布局.也许我应该用另一种类型的计算来集中视图?

谢谢阅读!

uiview autoresize ios cgaffinetransformscale

9
推荐指数
2
解决办法
8367
查看次数

iOS6中的手势识别器和自动布局,从中心扩展

下面的手势识别器代码通常会从中心缩放视图,但在iOS6中启用自动布局时则不会.当启用自动布局时,视图似乎从其原点开始缩放.其他仿射变换(特别是缩放和旋转)也没有像我预期的那样工作.

任何人都有这个问题,或者可以让我以正确的方式处理这个问题?

- (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer {    
    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
    recognizer.scale = 1;  
}
Run Code Online (Sandbox Code Playgroud)

xcode cgaffinetransform ios cgaffinetransformscale autolayout

8
推荐指数
1
解决办法
1618
查看次数

iOS视图转换动画

我可能错过了一些简单的东西,但试图用图像视图做一个简单的"肯伯恩斯效应".

首先是代码:

[UIView animateWithDuration:20
                      delay:2
                    options:UIViewAnimationCurveLinear
                 animations:^{
                   CGAffineTransform move = CGAffineTransformMakeTranslation(40, 40);
                   CGAffineTransform zoom    = CGAffineTransformMakeScale(1.2, 1.2);
                   CGAffineTransform transform = CGAffineTransformConcat(zoom, move);
                   self.imageView.transform = transform;
                 }
                 completion:^(BOOL finished){
                   NSLog(@"Done");
                 }];
Run Code Online (Sandbox Code Playgroud)

我希望这可以从正常比例的图像视图开始,并在20秒内将其扩展到120%的大小.实际发生的是它立即开始小于正常尺寸,然后扩展到正常尺寸.

如果我使用比例值的倒数,它会开始放大然后缩小到正常比例,这与我想要的效果相反.

有任何想法吗?

core-animation objective-c ios cgaffinetransformscale

8
推荐指数
1
解决办法
1万
查看次数

cornerRadius上的CGAffineTransformMakeScale动画舍入了UIButton

我正在舍入一个UIBUtton,这很好(自我是一个uibutton子类):

self.layer.cornerRadius = self.frame.size.width/2;
self.layer.masksToBounds = YES;
self.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

但我也试图动画按钮缩小比例然后返回到原始大小,如下所示:

[UIView animateWithDuration:0.1 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    self.layer.affineTransform = CGAffineTransformMakeScale(0.0f, 0.0f);
} completion:^(BOOL finished) {
    [UIView animateWithDuration:0.1 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        self.layer.affineTransform = CGAffineTransformMakeScale(1.0f, 1.0f);
    } completion:nil];
}];
Run Code Online (Sandbox Code Playgroud)

收缩/恢复动画应该发生.然而,之后我失去了角落半径,按钮又回到了正方形.如何在保持圆形按钮的同时动画和更改变换比例?

我也试过以下.它会在动画结束时将按钮恢复为圆形状态,但是在动画开始时它会回到正方形并且它看起来非常糟糕:

[UIView animateWithDuration:0.1 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    self.layer.affineTransform = CGAffineTransformMakeScale(0.0f, 0.0f);
    self.layer.cornerRadius = 0.0f;
    self.layer.masksToBounds = YES;
    self.clipsToBounds = YES;
} completion:^(BOOL finished) {
    [UIView animateWithDuration:0.1 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        self.layer.affineTransform = CGAffineTransformMakeScale(1.0f, 1.0f);
        self.layer.cornerRadius = self.frame.size.width/2;
        self.layer.masksToBounds = YES;
        self.clipsToBounds = YES;
    } completion:nil]; …
Run Code Online (Sandbox Code Playgroud)

uibutton calayer ios cgaffinetransformscale ios7

5
推荐指数
1
解决办法
3778
查看次数

UIView CGAffineTransform比例尺问题(自动布局问题?)

我试图通过将CGAffineTransform比例缩放到0 将一个简单的图像应用于imageView,但是由于某种原因,imageView的帧在动画开始之前就被搞砸了。好像自动版式正在应用于缩小的视图。我一点都不想要。我希望视图“相对”地保持在原位置,并且在视觉上缩小到其中心,但是由于视图绑定到其包含视图的顶部和右侧,因此该视图被移动了。

我想要的是使其收缩到中心并消失,但是就在它开始之前,imageView的框架正跳到其容器的右上角(似乎iOS正在动画处理并使用在动画开始之前重新定位它)。跳转到那里之后,动画相对于自身正常工作,视图相对于其中心缩小,但是我想避免它首先移动。

这都是在UITableViewCell由autolayout管理的内部进行的,所以我猜想这与autolayout有关,而<understatement>这并不是我第一次遇到autolayout的问题</understatement>

有什么方法可以防止自动布局影响转换吗?

cgaffinetransform uiviewanimation ios cgaffinetransformscale autolayout

5
推荐指数
0
解决办法
2155
查看次数

Swift:如何使用顶点的四个按钮实现可调整大小的个性化uiview

我想实现一个可调整大小和可拖动的UIView,如下图所示:

在此输入图像描述

这是我到目前为止使用简单的手势识别器实现的类:

class PincherView: UIView {

var pinchRec:UIPinchGestureRecognizer!
var rotateRec:UIRotationGestureRecognizer!
var panRec:UIPanGestureRecognizer!
var containerView:UIView!

init(size: CGRect, container:UIView) {
    super.init(frame: size)

    self.containerView = container

    self.pinchRec = UIPinchGestureRecognizer(target: self, action: "handlePinch:")
    self.addGestureRecognizer(self.pinchRec)

    self.rotateRec = UIRotationGestureRecognizer(target: self, action: "handleRotate:")
    self.addGestureRecognizer(self.rotateRec)

    self.panRec = UIPanGestureRecognizer(target: self, action: "handlePan:")
    self.addGestureRecognizer(self.panRec)

    self.backgroundColor = UIColor(red: 0.0, green: 0.6, blue: 1.0, alpha: 0.4)
    self.userInteractionEnabled = true
    self.multipleTouchEnabled = true
    self.hidden = false
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

func handlePinch(recognizer : UIPinchGestureRecognizer) { …
Run Code Online (Sandbox Code Playgroud)

uiview cgaffinetransformscale uipinchgesturerecognizer swift

5
推荐指数
0
解决办法
537
查看次数

Swift CGAffineTransformScale到一个比例,而不是一个比例

假设我使用CGAffineTransformScale缩放UILabel,如下所示:

let scale = 0.5
text = UILabel(frame: CGRectMake(100, 100, 100, 100))
text.text = "Test"

UIView.animateWithDuration(2.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
    self.text.transform = CGAffineTransformScale(self.text.transform, scale, scale)
}, completion: {(value : Bool) in
    print("Animation finished")
})
Run Code Online (Sandbox Code Playgroud)

当我想将UILabel缩小一半时,这很有用.但是,如果我再次调用相同的代码,它将以0.25的比例结束,因为它再次缩放一半.

是否可以使用CGAffineTransformScale始终缩放到原始UILabel帧的一半大小,而不是累积缩放?

uilabel ios cgaffinetransformscale swift

5
推荐指数
2
解决办法
7992
查看次数

在CGAffineTransformMakeScale之后校正模糊文本

我有多个视图,视图上有很多UILabel.(全部在Interface Builder中构建).

当你捏屏幕时,我正试图创建一个"较小"的视图副本.

要做到这一点,我申请:

view.transform = CGAffineTransformMakeScale(.5, .5);
Run Code Online (Sandbox Code Playgroud)

然后我也调整了视野.

问题是在转换之后,我所有UILabel中的文本变得"模糊".它不会保持像素完美,因为它在全尺寸视图中.

有没有办法在转换后增加标签的像素化?

cgaffinetransform ios cgaffinetransformscale

4
推荐指数
1
解决办法
4277
查看次数