gpt4 book ai didi

ios - UIView 弹跳?

转载 作者:行者123 更新时间:2023-11-29 03:27:06 26 4
gpt4 key购买 nike

我的 Nib 底部有一个 UIView。我希望它的高度能够增长,但让它看起来好像它没有移动位置,只是在增长。然后将高度缩小回原来的高度,除了高度之外不进行任何移动。不幸的是,它在 y 位置上反弹。它会正确增长,但会从屏幕底部移动。谁能告诉我为什么?

它应该是这样的,将鼠标悬停在黑框上,(UIView 应该做什么):

http://jsfiddle.net/hqJm9/

这是我在 Objective C 中使用的,结果很奇怪(弹跳)

点击按钮:

[UIView animateWithDuration:0.5 animations: ^{
CGRect blackBackgroundFrame = self.blackBackground.frame;
blackBackgroundFrame.size.height += 50;
self.blackBackground.frame = blackBackgroundFrame;

self.blackBackground.center = CGPointMake(self.blackBackground.center.x, self.blackBackground.center.y - 50);

}];

再次单击按钮:

  [UIView animateWithDuration:0.5 animations: ^{
CGRect blackBackgroundFrame = self.blackBackground.frame;
blackBackgroundFrame.size.height -= 50;
[self.blackBackground setFrame:blackBackgroundFrame];
self.blackBackground.center = CGPointMake(self.blackBackground.center.x, self.blackBackground.center.y + 50);
}];

为什么它会从底部移动?我怎样才能解决这个问题??谢谢

最佳答案

View 可能会弹跳,因为您试图同时为中心和框架设置动画。相反,试试这个:

[UIView animateWithDuration:0.5 animations: ^{
CGRect originalFrame = self.blackBackground.frame;
self.blackBackground.frame = CGRectMake(originalFrame.origin.x,
originalFrame.origin.y-50,
originalFrame.size.width,
originalFrame.size.height+50);
}];

[UIView animateWithDuration:0.5 animations: ^{
CGRect originalFrame = self.blackBackground.frame;
self.blackBackground.frame = CGRectMake(originalFrame.origin.x,
originalFrame.origin.y+50,
originalFrame.size.width,
originalFrame.size.height-50);
}];

并且 View 应该正确地设置动画。

编辑:经过仔细检查和一些实验,问题实际上是您将中心更改了 50 像素。如果您记得中心是中间点,那么您在这里所做的应该会很好,因此高度增加 50 只会使中心改变 25。

关于ios - UIView 弹跳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com