"长按实现视图抖动和删除"功能知识点整理

1、对视图添加长按手势的识别:{ UILongPressGestureRecognizer类的使用}

UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer allocinitWithTarget:selfaction:@selector(handleLongPress:)];

longPressRecognizer.allowableMovement = 30;

[testView addGestureRecognizer:longPressRecognizer];        

[longPressRecognizer release];

 

 

2、删除一个视图后,改变其它视图的位置,可以通过修改其center的值来实现:

如 tempView.center = tempViewCenter;

 

3、抖动的实现:{修改view的 transform值来改变视图的旋转过的角度;通过动画来实现动态角度转动;当动画结束后再时其转动相反角度,也动画实现,如此反复即可。}

- (void)wobble {

static BOOL wobblesLeft = NO;

if (isShake) {

CGFloat rotation = (kWobbleRadians * M_PI) / 180.0;

CGAffineTransform wobbleLeft = CGAffineTransformMakeRotation(rotation);

CGAffineTransform wobbleRight = CGAffineTransformMakeRotation(-rotation);

[UIView beginAnimations:nil context:nil];

NSInteger i = 0;

NSInteger nWobblyButtons = 0;

for (UIView *tempView in [scrollView subviews]) {

if ([tempView isKindOfClass:[TestView class]] || [tempView isKindOfClass:[UIButton class]]) {

++nWobblyButtons;

if (i % 2) {

tempView.transform = wobblesLeft ? wobbleRight : wobbleLeft;

else {

tempView.transform = wobblesLeft ? wobbleLeft : wobbleRight;

}

++i;

}

}

if (nWobblyButtons >= 1) {

[UIView setAnimationDuration:kWobbleTime];

[UIView setAnimationDelegate:self];

[UIView setAnimationDidStopSelector:@selector(wobble)];

wobblesLeft = !wobblesLeft;

else {

[NSObject cancelPreviousPerformRequestsWithTarget:self];

[self performSelector:@selector(wobblewithObject:nil afterDelay:kWobbleTime];

}

[UIView commitAnimations];

}

}

4、停止抖动:

tempView.transform = CGAffineTransformIdentity;

二、知识点整理

1、

UIGestureRecognizer 手势识别类

2、

NSValue的使用

 

 

3、

CGAffineTransform

 

CGFloat rotation = (kWobbleRadians * M_PI) / 180.0;

CGAffineTransform wobbleLeft = CGAffineTransformMakeRotation(rotation);

CGAffineTransform wobbleRight = CGAffineTransformMakeRotation(-rotation);

 

tempView.transform = CGAffineTransformIdentity;

 

4、UIView类中一些不常用到的内容

如:uiview.transform

5、NSObject类中一些不常用的内容

如:[NSObject cancelPreviousPerformRequestsWithTarget:self];


[self performSelector:@selector(wobblewithObject:nil afterDelay:kWobbleTime];

6、NSTimer的使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值