cocoa-touch - 将 Scale AffineTransform 应用于 UIView 会改变其中心

标签 cocoa-touch uiview core-animation cgaffinetransform cgaffinetransformscale

当用户点击其 super View 时,我正在运行此代码以缩小 UIView。然而,当应用 CGAffineTransformScale() 时,它也会改变中心。这是预期的行为吗?

-(void) onTap:(UITapGestureRecognizer *)tap{


    [UIView animateWithDuration:1.2
                          delay:0
                        options:0
                     animations:^{
                         CGAffineTransform transform = self.icon.transform;
                         NSLog(@"Previous center: %@", NSStringFromCGPoint(self.icon.center));

                         self.icon.transform = CGAffineTransformScale(transform, 0.5, 0.5);

                         NSLog(@"Next center: %@", NSStringFromCGPoint(self.icon.center));
                     } completion:^(BOOL finished) {
                         //
                     }];


}

最佳答案

我终于发现了发生了什么:自动布局正在重新定位 subview 并更改中心。

关于cocoa-touch - 将 Scale AffineTransform 应用于 UIView 会改变其中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513092/

相关文章:

ios - 为什么两个初始化函数都被调用

ios - 使 UIView 与 UITableView 一起滚动,但固定到顶部不可见

ios - 以编程方式在 UIView 中创建斜线背景

ios - 如何通过 -addSublayer : respond to touch events? 添加 UI 元素

ios - 如何提高 CALayer 动画的性能?

objective-c - CIFilter - 无法更改名称

iphone - 文本输入框,类似于 iPhone 上的 SMS 应用程序

iphone - UILocalNotification 执行操作

ios - 以编程方式进行模态推送 segue — Objective-c

iphone - 如何使用 UIScrollview 动态加载图像