相关疑难解决方法(0)

NSLayoutConstraints是否可以动画?

我试图动画一些视图,以便它们被景观中的巨型键盘阻挡.如果我简单地为框架设置动画,它的效果很好,但是其他人认为这会适得其反,我应该更新NSLayoutConstraints.但是,它们似乎不具有动画效果.有没有人让他们成功地工作?

//heightFromTop is an NSLayoutConstraint referenced from IB
[UIView animateWithDuration:0.25 animations:^{
    self.heightFromTop.constant= 550.f;
}];
Run Code Online (Sandbox Code Playgroud)

结果是立即跳到有问题的高度.

animation ios autolayout

196
推荐指数
4
解决办法
5万
查看次数

使用自动布局时,如何调整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缩放(缩放)到给定的CGPoint

我花了很多时间试图找到一种方法来使用CGAffineScale将视图转换为给定点,包括弄乱锚点,在转换之前和之后移动视图的中心以及全面的Google搜索.我知道使用UIScrollview会更简单; 但是我知道技术上可以不用一个,而且它在我脑海里成了一个分裂.

这个答案非常接近我想要实现的目标,但答案只提供了如何通过巧妙地将中心移动到与要放大的角相对的角落来放大到给定角(而不是给定点)的细节. .

如何修改mvds的代码以将UIView扩展到UIView中的任何给定点?

CGFloat s = 3;
CGAffineTransform tr = CGAffineTransformScale(self.view.transform, s, s);
CGFloat h = self.view.frame.size.height;
CGFloat w = self.view.frame.size.width;
[UIView animateWithDuration:2.5 delay:0 options:0 animations:^{
    self.view.transform = tr;
    self.view.center = CGPointMake(w-w*s/2,h*s/2);
} completion:^(BOOL finished) {}];
Run Code Online (Sandbox Code Playgroud)

zoom objective-c cgaffinetransform ios

13
推荐指数
1
解决办法
1万
查看次数