原理:
在按鈕上新增拖拽手勢uipangesturerecognizer,獲取手勢移動的偏移值,然後重新設定按鈕的位置為按鈕位置加上偏移值。
注意拖拽位置不要超出螢幕位置。最後移除手勢是現在在arc記憶體管理模式的規範**風格,類似的有在dealloc裡面移除通知、定時器。因為以前在mrc時候是手動建立記憶體,就必須手動釋放記憶體。現在是在arc記憶體管理模式下,不移除也沒關係,只不過是釋放早晚的問題。
例子://仿蘋果手機懸浮可拖拽按鈕
self.cartbtn= [uibuttonbuttonwithtype:uibuttontypecustom];
self.cartbtn.titlelabel.numberoflines= 0;
self.cartbtn.titlelabel.font= [uifontsystemfontofsize:12];
[self.cartbtnsettitle:@" cart\n(可拖拽)"forstate:uicontrolstatenormal];
[self.cartbtnsettitlecolor:[uicolorwhitecolor] forstate:uicontrolstatenormal];
self.cartbtn.backgroundcolor= [uicolororangecolor];
[self.viewaddsubview:self.cartbtn];
[self.cartbtnmas_makeconstraints:^(masconstraintmaker*make) elseif(center.x>= self.view.bounds.size.width-25) elseif(center.y>= self.view.bounds.size.height-25) {
center.y= self.view.bounds.size.height-25;
[self.cartbtnsetcenter:center];
//設定位置
[ges settranslation:cgpointmake(0, 0) inview:self.view];
- (void)removepangesturerecognizer {
if(self.pangesrecognizer) {
[self.cartbtnremovegesturerecognizer:self.pangesrecognizer];
self.pangesrecognizer= nil;
- (void)dealloc {
[selfremovepangesturerecognizer];
IOS 實現可移動拖拽的View
在乙個大的view中,某個view元素可以在該view中自由拖動,但是不能超出該大view範圍。首先新增拖動gesture uipangesturerecognizer pangesturerecognizer uipangesturerecognizer alloc initwithtarget ...
iOS開發 新增乙個全域性懸浮按鈕
背景介紹 在普通的ios開發組中,一般測試機都不止一台,但是我們在開發的時候,不可能每台測試機時刻保持最新的 這就出現了乙個問題,當測試測出問題的時候,或者產品突然拿去點點看的時候出了問題 如果不知道當前的版本,可能不確定是什麼時候出的問題。解決方案 如果當前環境是測試服的時候,展示乙個全域性浮動標...
iOS懸浮 可拖動 自動吸附螢幕邊緣的按鈕製作
想製作乙個按鈕,類似於iphone 的輔助touch的那個小白點的按鈕。但是注意 千萬不能也做成小白點,可能會導致審核被拒。不明白網路上查到的那些,為什麼會那麼複雜,涉及到那麼多的頁面。其實只要在要出現這個按鈕的控制器的.m檔案裡寫幾段 就可以解決,非常輕便,尤其適合開發新手。首先,在想放這個but...