Swift自定义log以及其它

2018-02-28  本文已影响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)
            }
        }
    }
上一篇下一篇

猜你喜欢

热点阅读