iOS仿QQ左滑多個按鈕

(原創博客,如將轉載煩請備注出處)

iOS版本的QQ左滑會出現‘置頂’、‘刪除’等多個按鈕,產生左劃動作cell會向左滑動,在cell已經是出現多個操作按鈕的情況下點擊或產生右滑動作cell都會復位。

以前我的第一想法和做法是:自定義cell,在cell上放一個scrollview,根據手勢來判別相應操作,加上一些動畫,可是這樣的做法很難達到很和諧,如系統動畫那般絲滑。

下面我要給大家介紹PTLestSlideTableView。PTLestSlideTableView是繼承了UITableView,并開放出按鈕相關配置接口。

直接定義一個成員屬性PTLeftSlideTableView *tableView

@property (nonatomic, strong) PTLeftSlideTableView *tableView;

在初始化的時候可以定義好相關屬性

- (PTLeftSlideTableView *)tableView{

?? ? ?? if (!_tableView) {

?? ? ? ? ? ? ?? _tableView = [[PTLeftSlideTableView alloc]initWithFrame:self.view.frame];

??? ? ? ? ? ? ? _tableView.PTdelegate = self;

??? ? ? ? ? ? ? _tableView.PTdataSource = self;

??? ? ? ? ? ? ? _tableView.btnFont = 11.0;

??? ? ? ? ? ? ? _tableView.btnWidth = 74.0;

??? ? ? ? ? ? ? _tableView.editingArr = @[@"置頂",@"刪除"];

??????????????? _tableView.editingBgColorArr = @[[UIColor yellowColor],[UIColor redColor]];??

?? ? ? ? ? ? ? _tableView.editingTColorArr = @[[UIColor blueColor],[UIColor blackColor]];

}

return _tableView;

}


然后剩下的就跟平時使用uitableview一樣了。

接下來來講講PTLeftSlideTableView的實現原理。

因為uitableviewcell的編輯操作其實就是cell的左平移,即cell.frame的改變,由此想到了KVO機制。PTLeftSlideTableView正是運用KVO,在cell的frame發生改變時平鋪一個view在顯現出來的UITableViewCellDeleteConfirmationView上方。

效果如下:


PTLeftSlideTableView下載地址?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 概述在iOS開發中UITableView可以說是使用最廣泛的控件,我們平時使用的軟件中到處都可以看到它的影子,類似...
    liudhkk閱讀 9,086評論 3 38
  • 1.nav1.navigationBar.barStyle=UIBarStyleBlack; //改變導航欄背景顏...
    SadMine閱讀 1,616評論 1 4
  • *7月8日上午 N:Block :跟一個函數塊差不多,會對里面所有的內容的引用計數+1,想要解決就用__block...
    炙冰閱讀 2,534評論 1 14
  • 細虬枝上初香蕊,繡簾階下云鬢睡。風和日暖含章殿,成五出花暗香墜。青樓花閣仿壽陽,信手拂來梅花妝。一樹冰骨迎面開,時...
    霍大少閱讀 933評論 4 0
  • 今天大約是今年雪季最后一次滑雪了。忽然覺得滑雪真是一件奇妙的事情,感覺它能幫助你脫離生活的煩惱,一天前還會難過傷心...
    明記余心閱讀 136評論 0 0