修改UITableViewCell刪除按鈕樣式

一痊焊、iOS 11之前的處理方法

我們知道UITableViewCell默認的刪除按鈕樣式為紅色背景匾效、白色字體眼耀;怎么樣來修改按鈕的樣式呢宏多?網(wǎng)上查詢大多的做法是通過遍歷cell的subViews獲取這個刪除按鈕然后修改樣式算吩;話不多說直接上代碼:

- (void)layoutSubviews
{
    [super layoutSubviews];
    for (UIView *subView in self.subviews)
    {
        if (X(subView)  >= WIDTH(self))
        {
            for (UIView *childView in subView.subviews)
            {
                if ([childView isKindOfClass:[UIButton class]])
                {
                    UIButton *delBtn = (UIButton *)childView;
                    [delBtn setBackgroundColor:[UIColor orangeColor]];
                    [delBtn setTitleColor:[UIColor purpleColor] forState:(UIControlStateNormal)];
                    break;
                }
            }
        }
    }
}

在嘗試獲取這個刪除按鈕的時候試了不少方法,按網(wǎng)上說的cellforrow茄螃、cellwilldisplay等方法里都沒獲取到遏片;后來經(jīng)嘗試發(fā)現(xiàn)在cell的layoutsubviews方法里可以讀取到(自定義cell在正常狀態(tài)下有三個子view炒辉,contentView黑低、和兩個分割線view赘艳,編輯時會出現(xiàn)第四個view);因為contentView里面也可能會有button所以加了個位置判斷克握,如果view的左側(cè)超出屏幕右側(cè)說明是編輯view(刪除按鈕默認是在contentView的右側(cè));如果想完全自定義右側(cè)的刪除按鈕可以給這個button添加自定義視圖枷踏,大家可以自己嘗試一下菩暗;
然后刪除按鈕的標題修改系統(tǒng)提供了一個代理方法:

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return @"點擊刪除";
}

修改后效果如下圖:

效果圖

Demo地址

二、iOS 11之后的解決方法

0旭蠕、在iOS 11中系統(tǒng)修改了編輯按鈕的實現(xiàn)方式停团,新加入了一個UISwipeActionPullView類(沒有對外暴露),而且這個控件不是添加在cell里了掏熬,是tableview的subView佑稠。所以之前通過取cell的subView來修改樣式的方法行不通了。
1旗芬、iOS 11系統(tǒng)修改了編輯按鈕的實現(xiàn)方式舌胶,通過下面的兩個代理方法用戶可以配置多個編輯按鈕并自定部分樣式(可設置背景色,背景圖片等)疮丛。
- (nullable UISwipeActionsConfiguration *)tableView:(UITableView *)tableView leadingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
- (nullable UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
2幔嫂、雖然通過系統(tǒng)的方法可以修改編輯按鈕的樣式,但系統(tǒng)提供的還不夠誊薄,不能完全自定義樣式履恩。所以可以按照以前的思路取出這個UISwipeActionPullView然后拿到編輯按鈕修改樣式。因為這個控件是tableview的子控件所以我們可以自定義tableView類呢蔫,然后通過layoutsubView方法來拿到這個控件切心,并修改它的樣式。
- (void)layoutSubviews
{
    [super layoutSubviews];
    for (UIView *subView in self.subviews)
    {
        if ([subView isKindOfClass:NSClassFromString(@"UISwipeActionPullView")])
        {
            subView.backgroundColor = [UIColor orangeColor];
            for (UIView *view in subView.subviews)
            {
                if ([view isKindOfClass:[UIButton class]])
                {
                    UIButton *btn = (UIButton *)view;
                    [btn setTitleColor:[UIColor redColor] forState:(UIControlStateNormal)];
                    [btn setBackgroundColor:[UIColor orangeColor]];
                }
            }
        }
    }
}
3、如果需要多個編輯按鈕绽昏,在iOS11之前只能借助一些第三方的實現(xiàn)方式协屡,其中SWTableViewCell是比較常用的一個框架。(未完待續(xù))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末而涉,一起剝皮案震驚了整個濱河市著瓶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌啼县,老刑警劉巖材原,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異季眷,居然都是意外死亡余蟹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門子刮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來威酒,“玉大人,你說我怎么就攤上這事挺峡】拢” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵橱赠,是天一觀的道長尤仍。 經(jīng)常有香客問我,道長狭姨,這世上最難降的妖魔是什么宰啦? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮饼拍,結(jié)果婚禮上赡模,老公的妹妹穿的比我還像新娘。我一直安慰自己师抄,他們只是感情好漓柑,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著司澎,像睡著了一般欺缘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挤安,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天谚殊,我揣著相機與錄音,去河邊找鬼蛤铜。 笑死嫩絮,一個胖子當著我的面吹牛丛肢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剿干,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蜂怎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了置尔?” 一聲冷哼從身側(cè)響起杠步,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎榜轿,沒想到半個月后幽歼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡谬盐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年甸私,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片飞傀。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡皇型,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出砸烦,到底是詐尸還是另有隱情弃鸦,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布幢痘,位于F島的核電站寡键,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雪隧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一员舵、第九天 我趴在偏房一處隱蔽的房頂上張望脑沿。 院中可真熱鬧,春花似錦马僻、人聲如沸庄拇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽措近。三九已至,卻和暖如春女淑,著一層夾襖步出監(jiān)牢的瞬間瞭郑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工鸭你, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留屈张,地道東北人擒权。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像阁谆,于是被迫代替她去往敵國和親碳抄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,133評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫场绿、插件剖效、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,103評論 4 62
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 46,759評論 22 665
  • 感恩父母的養(yǎng)育,感恩師長傳授智慧焰盗,感恩學長的幫助璧尸,感恩生命中充滿了正能量,感恩女兒懂事姨谷,感恩父母安康逗宁,感恩按計劃播...
    妙愛閱讀 71評論 0 0
  • 我已經(jīng)大二了,仔細想來梦湘,幾乎是單身了二十一年了瞎颗。靠著這二十一年來吃過的狗糧堅強的活到現(xiàn)在捌议。 崔辣雞是我目前遇到過的...
    江衍閱讀 266評論 0 0