-3

正如我们在这张图片中看到的: 在此处输入图像描述

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

请提供一些代码的任何链接来激活它。


编辑:

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

向上滑动检测的代码是:

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

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

谢谢阿什什

4

2 回答 2

1

如果你的意思是你想以编程方式删除你的应用程序,让我告诉你,不,你不能。苹果提供了一种默认的方式来做。所以你不需要添加一个新的方法来自己做。

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

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

如果您想从 iPhone、iPod Touch 或 iPad 上删除应用程序,完成此任务的过程很简单。

~找到您要删除的应用程序

~双击该项目,但将手指放在屏幕上。您将在此处发出提示音,VoiceOver 将宣布,“移动应用程序名称

~再次双击该项目。

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

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

~ 打开 iTunes 并与源表交互

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

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

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

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

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

于 2013-03-19T04:52:11.537 回答
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”方法中显示适当的消息并在那里处理删除代码。

于 2013-03-19T06:51:53.713 回答