最近有做一個tableView的編輯事件(刪除) ,編輯事件其實不難,我是在
- (NSArray*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath代理方法中實現的, 功能好實現 ,就是滑動出現刪除按鈕的時候,刪除按鈕的UI跟要求的不符合,系統默認的是紅色背景 白色字體顏色,如圖所示:
圖1
可是我們UI要求是白色背景,字體為黑色,然后設置了UITableViewRowAction的背景,這里直接拿我工程的代碼來做示例了:
圖2
可是在設置action字體顏色時發現并沒有titleColor這個屬性,
圖3
然后在網上找了許多方法,均沒有實現效果,最后在stackoverflow找到一個方法可以設置:
圖5
效果為:
圖5
這個方法就是設置UIButton類的外觀,但是這個有一個問題就是設置之后工程里面所有的按鈕的字體顏色都會改變,可是我想要的只是在當前頁面的顏色改變,不需影響其他頁面的按鈕,這樣的話該方法顯然就不適合了,最后在查看官方文檔的時候發現一個方法:
+ (instancetype)appearanceWhenContainedInInstancesOfClasses:(NSArray> *)containerTypes NS_AVAILABLE_IOS(9_0);
在改變按鈕外觀的時候設置是改變的哪個類的外觀,這樣就能滿足我們的要求了,
最后代碼如下:
圖6
效果:
圖7
這樣的話就實現了改變按鈕的樣式,也不會影響其他頁面的按鈕。
如果大家有什么其他方法的話請不吝賜教..
最后如果能幫到大家就點個喜歡吧,*_*