我有一个UIView,当用户触摸它时我想从它的中心发展。问题是,当它动画化时,视图向左扩展然后向右移动,而我希望它向左和向右扩展,同时保持中心点不变。
这是我目前的代码:
[UIView animateWithDuration:1 animations:^(void) {
[view setFrame:CGRectMake(-10, 0, 320, view.frame.size.height)];
}];
我认为这样做并不困难,但似乎确实如此。如果没有使用计时器手动设置动画,我不知道如何从它的中心扩展它。
答案 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个点。