xcode:我想模拟应用程序的删除功能,但不知道怎么做?

时间:2013-03-19 04:46:00

标签: iphone ios xcode

正如我们在此图片中看到的: enter image description here

我们如何以编程方式模拟相同的功能?

请提供一些代码的任何链接以激活此功能。


编辑:

抱歉:如果我不清楚,实际上我正在开发一个具有背景图像的按钮很少的应用程序。有一个添加书签的功能,只要用户点击添加书签,就会在屏幕上创建新按钮。现在我必须从屏幕上删除书签。要做到这一点,我已经执行了向上滑动以删除书签,但这并没有为该按钮设置动画,也要求只是按住屏幕而不向上滑动删除。

用于向上滑动检测的

代码是:

- (void) handleSwipe:(UISwipeGestureRecognizer *)swipe {
    NSLog(@"swiping up..");
    //some code here.. to display Deletion Icon on the corner of the button
}

但我不知道如何识别触摸按键事件就像在Iphone中删除应用程序一样。

由于 阿希什

2 个答案:

答案 0 :(得分:1)

如果您的意思是要以编程方式删除自己的应用,请告诉您,否你不能。 Apple提供了一种默认方式来执行此操作。因此,您无需添加新方法来自行完成。

有两种方法可以做到这一点。

1. 如何直接从您的iDevice中删除应用程序。

如果您要删除iPhone,iPod Touch或iPad上的应用程序,这是完成此任务的简单过程。

〜找到要删除的应用程序

〜双击该项目,但将手指放在屏幕上。你将在这里发出声音,VoiceOver将宣布“移动应用程序名称

〜再次点击该项目。

2. 如何在iTunes中删除iDevice的应用程序

如果您不想直接从iPhone,iPad或iPod Touch删除应用程序,可以在iTunes中进行。只需执行以下操作即可;

〜打开iTunes并与源表进行交互

〜转到应用程序并停止与表格交互

〜转到实际应用程序列表并导航到要删除的应用程序

〜当确认对话框出现时,点击键盘上的删除键,然后点击,删除按钮上的VO键和空格键

〜然后,决定是要将文件永久删除还是仅从iTunes资料库中删除

然后会询问您是否确定是否要删除该应用程序。如果您改变主意,只需双击“删除”按钮即可确认您的决定或“取消”按钮。

答案 1 :(得分:0)

rob mayoff 提供的帮助,帮助我朝正确的方向发展。

<强> ------------------ 编辑:-------------

注意: 在删除任何应用时,这并不像iPhone中那样显示,但仍然可以轻松实现,因为这会以不同的方式进行动画制作。

<强> ------------------

以下方式我实现了代码的删除功能:

-(void)handleLongPress:(UILongPressGestureRecognizer *)swipe
{
   if (swipe.state == UIGestureRecognizerStateBegan)
   {
    NSLog(@"long pressed up..");
    @try {
        UIButton *btnDelete = (UIButton *)[self.view viewWithTag:977];
        [btnDelete removeFromSuperview];

        if(self.btnIDToDelete == swipe.view.tag)
        {
            self.btnIDToDelete = -1;
            UIButton *btnToDelete = (UIButton *)[self.view viewWithTag:swipe.view.tag];
            CALayer *layer = btnToDelete.layer;
            [layer removeAnimationForKey:@"DeleteAnimation"];
            return;
        }
    }
    @catch (NSException *exception) {

    }
    @finally {

    }

    NSInteger tag = swipe.view.tag;
    NSLog(@"id is = %d", tag);
    self.btnIDToDelete = tag;
    UIButton *btnToDelete = (UIButton *)[self.view viewWithTag:tag];
    UIButton *btnDelete = [[UIButton alloc] initWithFrame:CGRectMake(btnToDelete.frame.origin.x - 1, btnToDelete.frame.origin.y + 45, 50, 49)];
    [btnDelete addTarget:self action:@selector(deleteFavButton:) forControlEvents:UIControlEventTouchUpInside];
    btnDelete.tag = 977;
    UIImage *imgBack = [UIImage imageNamed:@"crossIpad.png"];
    [btnDelete setBackgroundImage:imgBack forState:UIControlStateNormal];

    [self.view addSubview:btnDelete];
    [btnDelete release];


    CABasicAnimation *pulseAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    pulseAnimation.duration = .5;
    pulseAnimation.toValue = [NSNumber numberWithFloat:1.1];
    pulseAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    pulseAnimation.autoreverses = YES;
    pulseAnimation.repeatCount = FLT_MAX;
    //pulseAnimation.repeatCount = 5;
    //pulseAnimation.fillMode = kCAFillModeForwards;
    //pulseAnimation.removedOnCompletion = NO;
    pulseAnimation.fillMode = kCAFillModeBackwards;
    pulseAnimation.removedOnCompletion = YES;

    float xVal = btnToDelete.frame.origin.x;
    float yVal =btnToDelete.frame.origin.y;
    float widthVal = btnToDelete.frame.size.width;
    float heightVal = btnToDelete.frame.size.height;


    NSLog(@"-- xVal=%f -- yVal=%f -- widthVal=%f -- heightVal=%f -- ",xVal, yVal, widthVal, heightVal);

    if(xVal < 48)
        xVal = 48;
    else if (xVal > 250 && xVal < 278)
        xVal = 278;
    else if (xVal > 480 && xVal < 508)
        xVal = 508;

    if(yVal < 95)
        yVal = 95;
    else if(yVal > 250 && yVal < 310)
        yVal = 310;
    else if(yVal > 500 && yVal < 525)
        yVal = 525;


    [btnToDelete setFrame:CGRectMake(xVal, yVal, widthVal, heightVal)];
    CALayer *layer = btnToDelete.layer;
    [layer addAnimation:pulseAnimation forKey:@"DeleteAnimation"];


   }
}

你应该这样称呼:

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPress:)];
    longPress.numberOfTouchesRequired = 1;
    [btn addGestureRecognizer:longPress];
    [longPress release];

注意:在“deleteFavButton”方法中显示相应的消息,并在那里处理删除代码。