美文网首页
Swift自定义log以及其它

Swift自定义log以及其它

作者: 莫寂岚 | 来源:发表于2018-02-28 15:45 被阅读24次

    一、自定义Log

    在Swift中,我们也需要如OC一样,对log进行自定义。下面是一个我自定义的log,示例如下:

    func ABYPrint<N>(message: N, fileName: String = #file, methodName: String = #function, lineNumber: Int = #line){
        #if DEBUGSWIFT
            let file = (fileName as NSString).lastPathComponent.replacingOccurrences(of: ".Swift", with: "")
        print("\(file):\(lineNumber)行,打印信息:\n\(message)");
        #endif
    }
    

    swift自定义log的关键点在于,#if DEBUGSWIFT 这行代码上。
    如何在Swift中添加一个宏定义呢?
    TARGETS -> build Setting -> 搜索“flag”,在Activie Complilation Conditions中,Debug的选项卡里添加DEBUGSWIFT, 即可。

    ,

    在xcoed 9, swift 4中,直接使用DEBUG也是可以的#if DEBUG
    但我为了和oc区分开来,添加了个人的标记。

    二、UITableView的一些注意事项

    1、行高

    行高这玩意,一言难尽。
    一开始以为直接给cell一个frame即可。但发现不生效。用autolayout又发现这个自动布局是根据子视图的约束自动计算高度,按理来说,就可以了。
    但偏偏页面比较简单,需要直接设置。
    最后......
    在代理方法中直接设置就好了......

    2、footer上的button

    用自动布局写了footer,上面有个button,点击事件不生效,但是,设置的footer的行高,就直接OK了......

    三、 自动布局与ScrollView

    func setScrollView() -> Void {
            scrollView.backgroundColor = ABYGlobalBackGroundColor()
            view.addSubview(scrollView)
            scrollView.snp.makeConstraints { (make) in
                make.top.left.right.bottom.equalToSuperview()
            }
            let containerView: UIView = UIView.init()
            scrollView.addSubview(containerView)
            containerView.snp.makeConstraints { (make) in
                make.top.left.bottom.right.equalTo(scrollView).inset(UIEdgeInsets.zero)
                make.width.equalToSuperview()
            }
            for index in 1...10 {
                let lable = UILabel.init()
                lable.textAlignment = .center
                lable.text = "第\(index)个视图"
                containerView.addSubview(lable)
                lable.snp.makeConstraints({ (make) in
                    make.left.right.equalToSuperview()
                    make.height.equalTo(scrollView.snp.height)
                    if let last = lastView {
                        make.top.equalTo(last.snp.bottom)
                    } else {
                        make.top.equalTo(0)
                    }
    
                })
                lastView = lable
            }
            containerView.snp.makeConstraints { (make) in
                if let last = lastView {
                    make.bottom.equalTo(last.snp.bottom)
                }
            }
        }
    

    相关文章

      网友评论

          本文标题:Swift自定义log以及其它

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