正如我们在此图片中看到的:
我们如何以编程方式模拟相同的功能?
请提供一些代码的任何链接以激活此功能。
抱歉:如果我不清楚,实际上我正在开发一个具有背景图像的按钮很少的应用程序。有一个添加书签的功能,只要用户点击添加书签,就会在屏幕上创建新按钮。现在我必须从屏幕上删除书签。要做到这一点,我已经执行了向上滑动以删除书签,但这并没有为该按钮设置动画,也要求只是按住屏幕而不向上滑动删除。
用于向上滑动检测的代码是:
- (void) handleSwipe:(UISwipeGestureRecognizer *)swipe {
NSLog(@"swiping up..");
//some code here.. to display Deletion Icon on the corner of the button
}
但我不知道如何识别触摸按键事件就像在Iphone中删除应用程序一样。
由于 阿希什
答案 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”方法中显示相应的消息,并在那里处理删除代码。