iOS拖拽View使其旋轉(zhuǎn)效果

效果是圖片有一個(gè)點(diǎn)固定, 然后拖拽view 使view按照指定的點(diǎn)旋轉(zhuǎn)



效果圖


? ? 我是獲取觸摸點(diǎn)和錨點(diǎn)的角度來旋轉(zhuǎn)的, 不知道有沒有什么更好的方法, 我就想出這么個(gè), 忘請(qǐng)高手指點(diǎn).

demo地址:https://github.com/Ra2212/RotateTheView.git

因?yàn)槲覀冺?xiàng)目是要求底部中點(diǎn),我就按照底部中點(diǎn)來的, 其他可以相應(yīng)修改,

思想是劃走上面的,然后alpha = 0; 返回到紅色的下面alpha = 1;

可以左右劃

//復(fù)原代碼

CGAffineTransform transform = CGAffineTransformMakeRotation(0);

self.transform = transform;

self.began_X = 0;self.alpha = 1.0;

view的錨點(diǎn)設(shè)置,?先設(shè)置錨點(diǎn), 在設(shè)置frame 不然frame會(huì)變, 至于frame 和 anchorPoint的關(guān)系自己百度吧;

//設(shè)置錨點(diǎn)

self.layer.anchorPoint = CGPointMake(0.5, 1);

self.frame = CGRectMake(got_p6(43), got_p6(17+64), ScreenWidth - got_p6(86), EVE_H);


給view添加拖拽手勢(shì)

UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];

[self addGestureRecognizer:panGestureRecognizer];


在handlePan:方法中實(shí)現(xiàn)

//獲取拖拽得到的角度

UIView *vv = (UIView *)self.nextResponder;

CGPoint translation = [recognizer translationInView:vv];

double ang = atan((translation.x)/EVE_H);

_began_X = _began_X + ang;

ang是每次偏移的角度 , _began_X是累加的, 就是實(shí)際偏移的

為啥用反正切函數(shù),我解釋下:

示意圖

看圖中角A 正好是tan A = _began_X / 高

高實(shí)際是手指按壓點(diǎn)到錨點(diǎn)的垂直距離? 實(shí)際體驗(yàn)旋轉(zhuǎn)很快, 就放大到視圖的高度也就是藍(lán)色view 的高度, 然后反正切求出角A,

求的得A是弧度, 旋轉(zhuǎn)正好也是弧度, 就直接旋轉(zhuǎn)view

//旋轉(zhuǎn)view

CGAffineTransform transform = CGAffineTransformMakeRotation(_began_X); self.transform = transform;

我又加了一些處理封裝了一下, 比較low, 模擬器上拽幾下沒反應(yīng)了, 真機(jī)效果很不錯(cuò), 不知道什么鬼.

有什么寶貴意見盡請(qǐng)?zhí)峁? 互相學(xué)習(xí)!!!

附上demo地址:https://github.com/Ra2212/RotateTheView.git

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市苞冯,隨后出現(xiàn)的幾起案子焚刺,更是在濱河造成了極大的恐慌渡贾,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異谊惭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門圈盔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豹芯,“玉大人,你說我怎么就攤上這事驱敲√福” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵众眨,是天一觀的道長木缝。 經(jīng)常有香客問我,道長围辙,這世上最難降的妖魔是什么我碟? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮姚建,結(jié)果婚禮上矫俺,老公的妹妹穿的比我還像新娘。我一直安慰自己掸冤,他們只是感情好厘托,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稿湿,像睡著了一般铅匹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饺藤,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天包斑,我揣著相機(jī)與錄音,去河邊找鬼涕俗。 笑死罗丰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的再姑。 我是一名探鬼主播萌抵,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼元镀!你這毒婦竟也來了绍填?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤栖疑,失蹤者是張志新(化名)和其女友劉穎讨永,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔽挠,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡住闯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年瓜浸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片比原。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡插佛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出量窘,到底是詐尸還是另有隱情雇寇,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布蚌铜,位于F島的核電站锨侯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冬殃。R本人自食惡果不足惜囚痴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望审葬。 院中可真熱鬧深滚,春花似錦、人聲如沸涣觉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽官册。三九已至生兆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膝宁,已是汗流浹背鸦难。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昆汹,地道東北人明刷。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像满粗,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子愚争,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容