美文网首页
swift4.0 和 Objective-C去除xib上的分割线

swift4.0 和 Objective-C去除xib上的分割线

作者: 让我走的潇洒一点 | 来源:发表于2018-04-02 10:48 被阅读91次

认真搬砖中!!!

刚在写一个项目的某个页面的时候顺便看了一下图层,是下面这样的:


屏幕快照 2018-04-02 上午10.29.21.png

页面很简单,其实也没啥,就是红色箭头处这个多余的分割线让我很不舒服,当然我设置了 tableView.separatorStyle = .none,确实运行起来你是看不见我的这根分割线,但还是存在的,为啥会有这个分割线呢,就是因为我是用xib创建的cell。

然后反正看了一下图层找到这个 _UITableViewCellSeparatorView ,然后在自定义的cell里面写了以下代码:

override func layoutSubviews() {
        super.layoutSubviews()
        
        let subviews = self.subviews
        
        for subview in subviews {
            
            if let separatorViewClass: AnyClass = NSClassFromString("_UITableViewCellSeparatorView") {
                if subview.isKind(of: separatorViewClass) {
                    subview.isHidden = true
                }
            }
        }        
    }

写完运行就好了:

屏幕快照 2018-04-02 上午10.42.15.png

对的,没什么技术含量,也没什么好解释的,反正都看得懂,我会来解决这个问题的原因就是,在曾经OC项目中我就处理过这个,只不过现在swift再处理一次。

下面是OC的解决问题的代码(很早之前写,代码有点low,勿喷):

//以下代码就是为了实现将那个xib画的cell的线条隐藏的方法,,
- (void)layoutSubviews
{
    [super layoutSubviews];
    NSMutableArray *arr = [[NSMutableArray alloc] init];
    for (UIView * view in self.subviews) {
        if ([view isKindOfClass:NSClassFromString(@"_UITableViewCellSeparatorView")]) {
            [arr addObject:view];
        }
    }
    UIView *v = arr.firstObject;
    v.hidden = YES;
}

处理过程代码随便写就好了,反正意思是这么个意思,我写这个也是为了记录一下,没什么的。
当然,也许很多人都不会注意到这个,也无可厚非,因为根本不碍事儿。

(对了,swift 4.1已经出来了,我还没有更新呢)

相关文章

网友评论

      本文标题:swift4.0 和 Objective-C去除xib上的分割线

      本文链接:https://www.haomeiwen.com/subject/ifythftx.html