UITableView左劃刪除按鈕自定義

<個(gè)人記錄>

左劃刪除方法:

//ios11.0之前-(NSArray*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{

UITableViewRowAction *sharedAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"? " handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {

[tableView setEditing:NO animated:YES];

NSLog(@"分享事件1");

}];

sharedAction.backgroundColor = [UIColor yellowColor];

UITableViewRowAction *delAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"? " handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {

[tableView setEditing:NO animated:YES];

NSLog(@"刪除事件1");

}];

return @[delAction,sharedAction];

}

//ios11.0

- ( UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath {

if (@available(iOS 11.0, *)) {

UIContextualAction *sharedAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:nil handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {

NSLog(@"分享事件");;

//? ? ? ? ? ? completionHandler (YES);

}];

UIContextualAction *delAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:nil handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {

NSLog(@"刪除事件");

//? ? ? ? ? ? ? ? ? ? completionHandler (YES);

}];

sharedAction.backgroundColor = [UIColor purpleColor ];

delAction.backgroundColor = [UIColor blueColor];

//? ? ? ? sharedAction.image = [UIImage imageNamed:@"sha"];//只滿足需求為白色圖片

//? ? ? ? delAction.image = [UIImage imageNamed:@"del"];//只滿足需求為白色圖片

UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:@[delAction,sharedAction]];

config.performsFirstActionWithFullSwipe = NO;//ios11.0左劃刪除劃到最右邊執(zhí)行刪除事件,默認(rèn)為YES.此處設(shè)置為NO禁止劃到最右邊執(zhí)行刪除操作。

return config;

} else {

return nil;

}}

項(xiàng)目中左劃刪除按鈕需要展示圖片eg:

1.png

而iOS11.0之前系統(tǒng)刪除按鈕只能設(shè)置title,不能滿足項(xiàng)目需求合冀。需對(duì)系統(tǒng)刪除按鈕自定義赡模,在自定義cell中添加如下方法:

-(void)layoutSubviews{//根據(jù)層級(jí)獲取刪除按鈕
??? [super layoutSubviews];
??? if(@available(iOS 11.0, *))return;
??? for (UIView *subview in self.subviews)
??? {
??????? if ([subview isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")] && [subview.subviews count] >= 1)
??????? {
??????????? UIButton *deleteButton = subview.subviews[0];
??????????? UIButton *sharedBtn = subview.subviews[1];
??????????? CGFloat top = (deleteButton.frame.size.height-18)/2.0;
??????????? CGFloat left = (deleteButton.frame.size.width-18)/2.0;
??????????? [deleteButton setImageEdgeInsets:UIEdgeInsetsMake(top, left, top, left)];
??????????? [deleteButton setImage:[UIImage imageNamed:@"del"] forState:UIControlStateNormal];
??????????? [sharedBtn setImageEdgeInsets:UIEdgeInsetsMake(top, left, top, left)];
??????????? [sharedBtn setImage:[UIImage imageNamed:@"sha"] forState:UIControlStateNormal];
???????????
??????? }
??? }
???
}

iOS11.0聽說刪除按鈕也支持圖片了加缘,想著適配可以直接使用系統(tǒng)方法就完全解決了锤悄,沒想到愣是把我的圖片都給渲染成了白色的圖片衣形。辣往。兔院。


2.png
3.png
4.png

黑色的,綠色的 彩色的都只能展示出白色的圖片站削。試了一些方法 也沒能把系統(tǒng)的這個(gè)只能展示白色圖片給解決掉坊萝。也是醉了支持設(shè)置圖片 還把我們?cè)O(shè)置的圖片都給渲染白了。這就只能解決本身是白色圖片的需求了许起。我們的需求是黑色的圖片十偶,所以還得自定義這個(gè)按鈕了。ios11之前刪除按鈕層級(jí)是在cell上的街氢,ios11刪除按鈕層級(jí)有所改變扯键,是在tableview上了。在控制器viewDidLayoutSubviews中添加:

#warning ios 11.0需求為非白色圖片時(shí)需獲取刪除按鈕珊肃,設(shè)置圖片荣刑。白色圖片時(shí)如下方法直接省掉使用delAction.image = [UIImage imageNamed:@"del"]

- (void)viewDidLayoutSubviews

{

[super viewDidLayoutSubviews];

if(@available(iOS 11.0, *)){

[self configSwipeButtons];

}}

- (void)configSwipeButtons

{

for (UIView *subview in self.tableView.subviews)

{

if ([subview isKindOfClass:NSClassFromString(@"UISwipeActionPullView")] && [subview.subviews count] >= 2)

{

UIButton *deleteButton = subview.subviews[1];

UIButton *readButton = subview.subviews[0];

if (deleteButton){

[deleteButton setImage:[UIImage imageNamed:@"del"] forState:UIControlStateNormal];

}

if (readButton){

[readButton setImage:[UIImage imageNamed:@"sha"] forState:UIControlStateNormal];

}}}}

- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath

{

if(@available(iOS 11.0, *)){

[self.view setNeedsLayout]; }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伦乔,隨后出現(xiàn)的幾起案子厉亏,更是在濱河造成了極大的恐慌,老刑警劉巖烈和,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爱只,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡招刹,警方通過查閱死者的電腦和手機(jī)恬试,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門窝趣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人训柴,你說我怎么就攤上這事哑舒。” “怎么了幻馁?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵洗鸵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我仗嗦,道長(zhǎng)膘滨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任稀拐,我火速辦了婚禮火邓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘德撬。我一直安慰自己贡翘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布砰逻。 她就那樣靜靜地躺著,像睡著了一般泛鸟。 火紅的嫁衣襯著肌膚如雪蝠咆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天北滥,我揣著相機(jī)與錄音刚操,去河邊找鬼。 笑死再芋,一個(gè)胖子當(dāng)著我的面吹牛菊霜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播济赎,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼鉴逞,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了司训?” 一聲冷哼從身側(cè)響起构捡,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壳猜,沒想到半個(gè)月后勾徽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡统扳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年喘帚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了畅姊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吹由,死狀恐怖若未,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溉知,我是刑警寧澤陨瘩,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站级乍,受9級(jí)特大地震影響舌劳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜玫荣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一甚淡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捅厂,春花似錦贯卦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至辙芍,卻和暖如春啡彬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背故硅。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工庶灿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吃衅。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓往踢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親徘层。 傳聞我的和親對(duì)象是個(gè)殘疾皇子峻呕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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