IOS開源項目–拖拽遊戲。學過瞭ios手勢,我們來通過手勢綜合起來做一個小遊戲,效果如下
核心代碼:
屏幕觸點的獲得
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *t = [touches anyObject]; CGPoint p = [t locationInView:self.view]; }
點擊手勢中,判斷在左視圖還是右視圖,同時處理對應的數據 加或減
- (void)tapAction:(UITapGestureRecognizer *)tap{ if ([tap.view.superview isEqual:self.leftView]) { //把點擊到的view刪除 [tap.view removeFromSuperview]; self.leftLabel.text = @(self.leftView.subviews.count).stringValue; }else{ //把點擊到的view刪除 [tap.view removeFromSuperview]; self.rightLabel.text = @(self.rightView.subviews.count).stringValue; } }
觸控結束時,講拖拽視圖的父視圖轉換為左右視圖。更新左右視圖裡的子視圖數據
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ if (CGRectContainsPoint(self.leftView.frame, self.dragIV.center)) { //得到相對於self.view的點 CGPoint oldCenter = self.dragIV.center; //把相對於self.view的點轉換成相對於leftView的點 CGPoint newCenter = [self.view convertPoint:oldCenter toView:self.leftView]; [self.leftView addSubview:self.dragIV]; self.dragIV.center = newCenter; self.leftLabel.text = @(self.leftView.subviews.count).stringValue; } }
詳細源代碼及圖片就自行github下載:
https://github.com/lee727n/drag-game