首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展和更改anchorPoint

扩展和更改anchorPoint
EN

Stack Overflow用户
提问于 2013-09-09 20:20:36
回答 1查看 1K关注 0票数 0

我尝试放大单击UIImageView中某个图像的区域。我用CGAffineTransformMakeScale制作了比例尺,我用点击点坐标改变了imageView.layer.anchorPoint比例尺是有效的,但图像不再在中心,我想我在anchorPoint坐标上是错的,我找到了很多关于它的文章讨论,但它太复杂了

请帮帮我!

代码:

代码语言:javascript
复制
-(void)gestureTapEvent:(UITapGestureRecognizer *)gesture {
    NSLog(@"doubleclic");

    CGPoint touchPoint = [gesture locationInView:gesture.view];  
    NSLog(@"Position of touch: %.3f, %.3f", touchPoint.x, touchPoint.y);    

    float newX = touchPoint.x/imageView.frame.size.width;
    float newY = touchPoint.x/imageView.frame.size.height;


    imageView.transform = CGAffineTransformMakeScale(1.5, 1.5);
    imageView.layer.anchorPoint = CGPointMake(newY, newX);
}
EN

回答 1

Stack Overflow用户

发布于 2013-09-09 20:36:54

层的内容相对于锚点绘制自身。实际上,层的anchorPointposition (位置大致对应于视图的center )在两个不同的坐标系中是完全相同的点:锚点在层的单位坐标空间中,位置在上层坐标空间中。关于所有这些in this article over at the iDeveloper blog,我有一个相当详细的解释。

简单的解决方案:在设置锚点之后设置图层的位置。由于存在转换,设置框架将不起作用(有关更多信息,请参阅frame属性的文档)。

另一种解决方案(如果你对位置锚点舞蹈感到恼火)是只使用一个变换。在这种情况下,您可以将translate、scale和translate连接起来,以获得最终转换。我已经写过基本上相同的东西,除了在this article中的旋转。只需将旋转替换为缩放:D

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18698092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档