限定pan手勢只能在圓內移動view

2021-09-06 16:42:49 字數 1690 閱讀 5756

限定pan手勢只能在圓內移動view

效果:

雖然看起來很簡單,但實現原理還是稍微有點複雜-_-!!

核心的地方,就是需要計算pan手勢的點與指定點的距離,不能超過這個距離,超過了就讓動畫還原,很容易理解:)

//

//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手勢的點與指定點的距離,不能超過這個距離,超過了就讓動畫還原,很容易理解 rootviewcontroller.m circle import rootviewcontroller...

Kettle Kitchen和Pan的命令列引數

引數語法 name value 引數以斜線 或者橫線 開頭,後面跟引數名稱。大部分引數後面都要有引數值。引數和引數值之間用冒號 或者 連線,引數值裡面如果有空格,引數值必須用單引號或雙引號引起來。kitchen和pan共有的引數如下 引數名引數含義 作用norep rep資源庫名稱 要連線的資源庫名...

個域網(PAN)技術

個人域網 pan 技術,區域網,都會網路,廣域網。個人域網 pan 技術,個人區域網四種核心技術 能在可攜式消費電器與通訊裝置之間進行短距離通訊的網路。其覆蓋範圍一般在10公尺半徑以內。pan的優點在於 它能夠以一種無縫和透明的方式自動發現落在pos內的任何裝置,並與其建立連線。pan的範圍通常只有...