iOS动态对象创建和存储
我有一个按钮。我想做的是,每次单击按钮时,都会创建一个新的UIImageView(我将在方法中设置大小/图像等),UIImageView会落到屏幕底部。我该怎么做?我尝试过创建对象并将其存储在NSMutableArray中,然后在数组上执行for循环,但这似乎不起作用。(我正在做的示例) 这个dropImageDown方法是由NSTimer控制的 忘了添加这个:问题是形状没有落到底部,它出现了并且没有移动强> 我还尝试了(inti=0;IiOS动态对象创建和存储,ios,objective-c,uiimageview,Ios,Objective C,Uiimageview,我有一个按钮。我想做的是,每次单击按钮时,都会创建一个新的UIImageView(我将在方法中设置大小/图像等),UIImageView会落到屏幕底部。我该怎么做?我尝试过创建对象并将其存储在NSMutableArray中,然后在数组上执行for循环,但这似乎不起作用。(我正在做的示例) 这个dropImageDown方法是由NSTimer控制的 忘了添加这个:问题是形状没有落到底部,它出现了并且没有移动 我还尝试了(inti=0;I500。是的,您又对了!但我现在只测试一个对象:):)请耐心听
,
,但这也不起作用
感谢您的帮助,谢谢不要尝试使用计时器,自己分步移动视图。它会产生不稳定的动画,给CPU带来很大的负担 改用UIView动画 大概是这样的:
-(void) animateImagesDown {
for (UIImageView *a in array1)
{
[UIView animateWithDuration: 1.0
animations: ^
{
a.center = CGPointMake(a.center.x, 500);
}
completion: ^(BOOL finished)
{
[a removeFromSuperview];
}
];
}
}
该代码会将所有视图设置为500的中心位置,然后删除它们。(它们将同时设置动画。)
默认情况下,UIView动画使用“缓入”和“缓出”动画。animateWithDuration UIView动画方法还有其他变体,可用于控制动画计时。(查看
方法animatewithduration:delay:options:animations:completion:
上的文档(特别是options参数)使用此链接有助于理解概念找到了我出现问题的原因…我没有初始化NSMutableArray,因此无法识别它。您将项目符号添加到array1
中,而不是添加新的imageView(iv)抱歉,忽略这一点,它应该在if语句中,您有[array1 removeAllObjects];
。我不认为您要删除整个数组;只有一个有中心的数组。y>500。是的,您又对了!但我现在只测试一个对象:):)请耐心听我说(换句话说,我只点击了一次按钮)谢谢你的回答,但是这不起作用。对象被创建了,但它没有移动,这与我遇到的问题相同。对象被创建了,但它们没有移动。我感觉这是因为它们存储在一个数组中……所以让我问你,我是否正确地创建和存储了对象?(请原谅我的术语,我是先学Java的,所以我对它比较熟悉)当我在创建对象引用后将其存储在数组中时,它是否会出错?这就是它在创建后不移动的原因吗?我看不出创建图像视图的方式有任何明显的问题。您发布了一个创建单个图像视图的方法。您是在循环中从另一个方法调用该方法吗?何时开始被调用?你确定在尝试设置视图动画之前要创建视图吗?另一件看起来很奇怪的事情:你的图像视图只有3点高。它们是否包含细的水平线?其他任何东西都太短,无法正确绘制。我在单击按钮时调用该方法(请注意,在我的代码中,按钮方法正在调用)[self createUiImage])。让我再检查一下,然后再回复您,谢谢您的帮助,我很感激。您好,谢谢您的回复,但是此链接对我的具体问题没有帮助
-(void) animateImagesDown {
for (UIImageView *a in array1)
{
[UIView animateWithDuration: 1.0
animations: ^
{
a.center = CGPointMake(a.center.x, 500);
}
completion: ^(BOOL finished)
{
[a removeFromSuperview];
}
];
}
}