自從IOS11出現(xiàn)以后tableviewcell 還有很多的方法都出現(xiàn)了不同的改變
比如我前段時(shí)間 為了做
自定義的cell的高度和這個(gè)設(shè)備的白色快的view同一個(gè)高度 瞄桨,在IOS 10 以前 我們調(diào)用
其實(shí)原理大家應(yīng)該知道就是因?yàn)閷蛹?jí)關(guān)系
iOS11之后,自定義刪除按鈕 我們會(huì)發(fā)現(xiàn) 這個(gè)層級(jí)關(guān)系就變了? 他們?cè)趖ableview上是同一級(jí)別的關(guān)系因此我們以前使用的改變 自定義按鈕的樣式的方法就不能用了
iOS11之后, 這個(gè)方法不適用,看下圖的對(duì)比
iOS11之后
所以,在iOS11之后,自定義的代碼可以寫(xiě)在UITableview中,
創(chuàng)建一個(gè)繼承UITableview的類,重寫(xiě)它的layoutSubviews方法,根據(jù)圖中的結(jié)構(gòu),遍歷出UISwipeActionPullView進(jìn)行修改
iOS11以后適配代碼
就是在自己自定義的tableview中重寫(xiě)layoutsubviews方法
代碼如下:
- (void)layoutSubviews{
? ? [super layoutSubviews];
? ? //iOS11版本以上,自定義刪除按鈕高度方法:
? ? if (IOS_VERSION_11) {
? ? ? ? for(UIView * subview in self.subviews)
? ? ? ? {
? ? ? ? ? ? if([subview isKindOfClass:NSClassFromString(@"UISwipeActionPullView")])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? UIView*swipeActionPullView = subview;
? ? ? ? ? ? ? ? //1.0修改背景顏色
? ? ? ? ? ? ? ? swipeActionPullView.backgroundColor=? [UIColor clearColor];
? ? ? ? ? ? ? ? //1.1修改背景圓角
? ? ? ? ? ? ? ? swipeActionPullView.layer.cornerRadius=5.f;
? ? ? ? ? ? ? ? swipeActionPullView.layer.masksToBounds=YES;
? ? ? ? ? ? ? ? //2.0修改按鈕-顏色
? ? ? ? ? ? ? ? UIButton*swipeActionStandardBtn = subview.subviews[0];
? ? ? ? ? ? ? ? if([swipeActionStandardBtn isKindOfClass:NSClassFromString(@"UISwipeActionStandardButton")]) {
? ? ? ? ? ? ? ? ? ? CGFloatswipeActionStandardBtnOX = swipeActionStandardBtn.frame.origin.x;
? ? ? ? ? ? ? ? ? ? CGFloatswipeActionStandardBtnW? = swipeActionStandardBtn.frame.size.width;
? ? ? ? ? ? ? ? ? ? swipeActionStandardBtn.frame=CGRectMake(swipeActionStandardBtnOX,10, swipeActionStandardBtnW,82-10);
? ? ? ? ? ? ? ? ? ? //2.1修改按鈕背景色
? ? ? ? ? ? ? ? ? ? swipeActionStandardBtn.backgroundColor=? [UIColorcolorWithRed:255/255.fgreen:173/255.fblue:69/255.falpha:1.0f];
? ? ? ? ? ? ? ? ? ? //2.2修改按鈕背景圓角
? ? ? ? ? ? ? ? ? ? swipeActionStandardBtn.layer.cornerRadius=5.f;
? ? ? ? ? ? ? ? ? ? swipeActionStandardBtn.layer.masksToBounds=YES;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
}