相关疑难解决方法(0)

使用自动布局时,如何调整CALayer的锚点?

注意:自问这个问题以来,事情已经发生了变化; 请看这里有一个很好的近期概述.


在自动布局之前,您可以通过存储框架,设置锚点和恢复框架来更改视图图层的锚点,而无需移动视图.

在自动布局世界中,我们不再设置框架,但是约束似乎不能将视图的位置调整回我们想要的位置.您可以破解约束以重新定位视图,但在轮换或其他调整大小事件时,这些会再次变为无效.

以下明智的想法不起作用,因为它创建了"无效的布局属性配对(左侧和宽度)":

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]];
Run Code Online (Sandbox Code Playgroud)

在这里我的目的是左边缘设置layerView,调整后的定位点来看,它的宽度加上20(我从上海华盈的左边缘要插入的距离)的一半.

是否可以在使用自动布局布局的视图中更改定位点而不更改视图的位置?我是否需要使用硬编码值并在每次旋转时编辑约束?我希望不是.

我需要更改锚点,以便在将变换应用于视图时,我获得正确的视觉效果.

calayer ios autolayout

159
推荐指数
3
解决办法
6万
查看次数

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

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

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

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

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

cgaffinetransform uiviewanimation ios cgaffinetransformscale autolayout

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