在这里,我编写代码以在点击时移动imageView。我想在第一次点击时执行上移,如果再次点击它会返回。这是我的代码:
-(void)gdown
{
if (penview.center.y > 428) penview.center = CGPointMake(penview.center.x, penview.center.y -5);
if(penview.center.x ==428)
{
[movtimer invalidate];
}
}
-(void)buttonmover
{
movtimer=[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(gdown) userInfo:nil repeats:YES];
if(movtimer==nil)
{
movtimer=[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(gdown) userInfo:nil repeats:YES];
}
}
-(void)gdup
{
if (penview.center.y < 480) penview.center = CGPointMake(penview.center.x, penview.center.y +5);
if(penview.center.y ==480)
{
[movtimers invalidate];
}
}
-(void)buttonmovup
{
movtimers=[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(gdup) userInfo:nil repeats:YES];
if(movtimers==nil)
{
movtimers=[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(gdup) userInfo:nil repeats:YES];
}
}
执行点击操作的方法:
-(IBAction)popupview:(id)sender
{
UIButton *button = sender;
if(button.selected) //
{
[self buttonmover];//gooin up
button.selected = false;
}
else
{
[self buttonmovup];//button goin down
button.selected = true;
}
}
它不起作用。单击时图像视图会抖动。我应该在这种方法中做出什么改变?
答案 0 :(得分:1)
我不认为你的其他部分代码正在执行。当点击按钮时,您的班级中maintain
flag
与“选择”属性相同的内容始终为真。
答案 1 :(得分:0)
您的代码是正确的。只需执行以下更改
movtimers=[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(gdown) userInfo:nil repeats:NO];
对于每个定时器设置重复为NO而不是YES
答案 2 :(得分:0)
您的代码是正确的。只需执行以下更改
movtimers=[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(gdown) userInfo:nil repeats:NO];
对于每个定时器设置重复为NO而不是YES
好的,如果你想要显示动画,那么就像这样改变你的if语句
//in gdown
if(penview.center.y <=428)
{
[movtimers invalidate];
}
//in gup
if(penview.center.y >=480)
{
[movtimers invalidate];
}