当使用自动布局时,如何调整CALLayer的锚点?自从提出这个问题以来,事情就有了进展,见这里最近的一个很好的概述。在自动布局之前,您可以通过存储框架、设置锚点和恢复框架来更改视图层的锚点,而无需移动视图。在自动布局世界中,我们不再设置框架,但是约束似乎无法完成将视图的位置调整到我们想要的位置的任务。您可以破解这些约束来重新定位视图,但是在旋转或其他调整大小的事件中,这些约束会再次变得无效。由于它创建了“布局属性(左和宽)的无效配对”,下面的好主意不起作用:layerView.layer.anchorPoint = CGPointMake(1.0, 0.5);// Some other size-related constraints here which all work fine...[self.view addConstraint:
[NSLayoutConstraint constraintWithItem:layerView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:layerView
attribute:NSLayoutAttributeWidth
multiplier:0.5
constant:20.0]];我在这里的目的是在layerView,调整后的锚点的视图,以其宽度的一半加20(从SuperView的左侧边缘插入的距离)。是否可以在不改变视图位置的情况下更改锚点,而该视图是用自动布局的?是否需要使用硬编码值并在每次旋转时编辑约束?我希望不会。我需要改变锚点,这样当我将转换应用到视图时,我就得到了正确的视觉效果。
3 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
let oldFrame = layerView.frame layerView.layer.anchorPoint = newAnchorPoint layerView.frame = oldFrame
layerView.layer.anchorPoint = CGPoint(1, 0.5)let centerXConstraint = .....centerXConstraint.constant = centerXConstraint.constant + layerView.bounds.size.width/2
- 3 回答
- 0 关注
- 672 浏览
添加回答
举报
0/150
提交
取消