围绕中心点的UIView的动画大小

时间:2011-06-21 18:23:57

标签: iphone objective-c animation uiview

我有一个UIView,当用户触摸它时我想从它的中心发展。问题是,当它动画化时,视图向左扩展然后向右移动,而我希望它向左和向右扩展,同时保持中心点不变。

这是我目前的代码:

[UIView animateWithDuration:1 animations:^(void) {
    [view setFrame:CGRectMake(-10, 0, 320, view.frame.size.height)];
}];

我认为这样做并不困难,但似乎确实如此。如果没有使用计时器手动设置动画,我不知道如何从它的中心扩展它。

3 个答案:

答案 0 :(得分:9)

我不太清楚为什么它以奇怪的方式为你工作。你有没有改变anchorPoint财产?否则它应该从中心发展。

正在做什么

CGRect newFrame;
newFrame = CGRectInset(view.frame, -10, -30);

[UIView animateWithDuration:1 animations:^(void) {
    view.frame = newFrame;
}];

也会给你相同的结果?那怎么样?

[UIView animateWithDuration:1 animations:^(void) {
    view.transform = CGAffineTransformScale(view.transform, 1.1, 1.1);
}];

答案 1 :(得分:0)

尝试@Deepak Danduprolu提供的代码,也不要忘记取消选中故事板的show file inspector窗口中的“Use AutoLayout”复选框。 它对我有用。

答案 2 :(得分:0)

只是偏移视图的X,Y位置。假设您将帧的宽度和高度减少了20个点:然后您应该在帧的X和Y位置添加10个点。