【问题标题】:CALayer anchorPoint doesn't work as expected with CGAffineTransformCALayer anchorPoint 不能按预期与 CGAffineTransform 一起工作
【发布时间】:2011-09-30 19:13:17
【问题描述】:

我有一个 CALayer,包含几个子层 (CATextLayers)。 我正在对 CALayer 应用一些常用手势(缩放、平移)的转换。 除了向左下角而不是屏幕中心进行缩放(缩放)之外,一切都运行良好。

我在 CoreAnimation 编程指南中找到了一些信息,我尝试将锚点设置为我的屏幕中心,以便每次转换都会朝着该锚点完成......但它似乎没有按预期工作.

这是我的代码:

// init 函数内部:

_layerMgr = [[CALayer alloc] init];

_layerMgr.frame = [[UIScreen mainScreen] bounds];

_layerMgr.anchorPoint = CGPointMake(0.5, 0.5);

// 在手势事件上完成:

CGAffineTransform tt = CGAffineTransformMakeTranslation(offset.x, -偏移量.y);

CGAffineTransform st = CGAffineTransformMakeScale( scale ,scale );

CGAffineTransform rt = CGAffineTransformMakeRotation(rotation);

变换 = CGAffineTransformConcat( tt, CGAffineTransformConcat( st,rt));

_layerMgr.transform = CATransform3DMakeAffineTransform(_transform);

也许问题来自我的子视图?我已经使用 addSubView 方法添加了它们...没什么特别的...

【问题讨论】:

    标签: cocoa-touch ipad core-animation calayer cgaffinetransform


    【解决方案1】:

    尝试在“你的”_layerMgr.transform 上进行转换,而不是创建一个新的:

    例如:

    [_layerMgr setTransform:CGAffineTransformScale (_layerMgr.transform, 2, 2)];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多