将视图扩展到左侧,动画
问题描述:
我有一个视图,我想使用动画在左侧进行扩展。除了左边的所有边界都应该保持不变,所以视图的x位置和宽度都在变化。将视图扩展到左侧,动画
我用这个代码:如果我运行这段代码
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:5.0];
self.frame = CGRectMake(self.frame.origin.x-100,
self.frame.origin.y,
self.frame.size.width+100,
self.frame.size.height);
[UIView commitAnimations];
,视图的宽度将立即设置为新的值,然后将视图移动到新的X点,但是为什么呢?我怎样才能改变这种行为?
感谢您的想法!
答
您的代码适合我。你如何运行它?调用-setFrame是你正在做的事情的正确选择。这里是我的自定义视图是什么样子:
#import "TestView.h"
@implementation TestView
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// Initialization code
}
return self;
}
- (void)dealloc {
[super dealloc];
}
- (void)go;
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:5.0];
self.frame = CGRectMake(self.frame.origin.x-100,
self.frame.origin.y,
self.frame.size.width+100,
self.frame.size.height);
[UIView commitAnimations];
}
@end
我从我的观点型TestView的控制器创建一个出口,并进行连接并设置在IB型。然后我创建一个按钮,其处理程序调用[customView go];似乎工作正常。
答
好吧,我现在就开始行动了。问题是我的观点是一个UIButton,我用setBackground:forState:
和setTitle:forState:
来设置标题和背景。 看来,背景并非动画。我使用周围的工作,我用UIImageView添加自己的背景。
感谢您的回复!
我按下按钮后开始执行代码,因此所有视图初始化操作都应该完成。 – Erik 2010-06-16 07:24:01
我现在试图只使用frame属性更改视图的大小,但不会发生动画。 如果我尝试使用边界属性更改大小,视图移动...不是有点奇怪吗? – Erik 2010-06-16 08:23:31
这是我做的一个演示项目。看看你是否能找到你在做什么和我有什么之间的区别:http://www.cimgf.com/files/GrowViewLeft.zip – 2010-06-16 16:18:57