限定pan手勢只能在圓內移動view
效果:
雖然看起來很簡單,但實現原理還是稍微有點複雜-_-!!
核心的地方,就是需要計算pan手勢的點與指定點的距離,不能超過這個距離,超過了就讓動畫還原,很容易理解:)
//
// rootviewcontroller.m
// circle
////
#import "rootviewcontroller.h"
@inte***ce rootviewcontroller ()
@end
@implementation rootviewcontroller
- (void)viewdidload
; circlelayer.position = self.view.center;
circlelayer.cornerradius = 250/2.f;
circlelayer.opacity = 0.5f;
circlelayer.backgroundcolor = [uicolor orangecolor].cgcolor;
[self.view.layer addsublayer:circlelayer];
// 移動手勢
uipangesturerecognizer *pan = \
[[uipangesturerecognizer alloc] initwithtarget:self
action:@selector(gestureevent:)];
// 用於移動用的view
uiview *move = [[uiview alloc] initwithframe:(cgrect)];
move.backgroundcolor = [uicolor cyancolor];
move.center = self.view.center;
move.layer.cornerradius = 50/2.f;
[move addgesturerecognizer:pan];
[self.view addsubview:move];
}- (void)gestureevent:(uipangesturerecognizer *)gesture
]; }
// 狀態改變
if (gesture.state == uigesturerecognizerstatechanged)
else
completion:^(bool finished) ];}}
// 結束
if (gesture.state == uigesturerecognizerstateended)];}
}@end
核心**處:
1. 計算座標值
2. 距離超出指定範圍的時候就必須要關閉pan手勢並執行動畫,動畫結束後再開啟pan手勢,相當重要哦.
限定pan手勢只能在圓內移動view
限定pan手勢只能在圓內移動view 效果 雖然看起來很簡單,但實現原理還是稍微有點複雜 核心的地方,就是需要計算pan手勢的點與指定點的距離,不能超過這個距離,超過了就讓動畫還原,很容易理解 circle import rootviewcontroller.h inte ce rootviewco...
Kettle Kitchen和Pan的命令列引數
引數語法 name value 引數以斜線 或者橫線 開頭,後面跟引數名稱。大部分引數後面都要有引數值。引數和引數值之間用冒號 或者 連線,引數值裡面如果有空格,引數值必須用單引號或雙引號引起來。kitchen和pan共有的引數如下 引數名引數含義 作用norep rep資源庫名稱 要連線的資源庫名...
個域網(PAN)技術
個人域網 pan 技術,區域網,都會網路,廣域網。個人域網 pan 技術,個人區域網四種核心技術 能在可攜式消費電器與通訊裝置之間進行短距離通訊的網路。其覆蓋範圍一般在10公尺半徑以內。pan的優點在於 它能夠以一種無縫和透明的方式自動發現落在pos內的任何裝置,並與其建立連線。pan的範圍通常只有...