美文网首页
Swift 小知识点

Swift 小知识点

作者: 落夏简叶 | 来源:发表于2018-10-20 16:36 被阅读6次

代码基于:swift 4.0

  1. 在一个类中,可以通过 customClass.self 取出不带命名空间的类名。
print(self)  // <testOne.ViewController: 0x1033094f0>
print(self.description)  // <testOne.ViewController: 0x101d10350>
print(ViewController.self)  // ViewController
po type(of: self) // testOne.ViewController
print(type(of: self)) // ViewController 
  1. type(of:)得到是类型
let count: Int = 5
printInfo(count)
// '5' of type 'Int'
  1. 为一个tableViewCell设置一个唯一标志符,通常让cell 遵循一个协议,在协议里面定义一个uniqueIdentifier。用自己的类名作为唯一标识符。
// 1. 定义一个协议
protocol CellProtocol: class {
    static var uniqueIdentifier: String {get}
}

// 2. 协议扩展来实现属性
extension CellProtocol {
    static var uniqueIdentifier: String {
        return String(describing: type(of: self)).components(separatedBy: ".").first!
    }
}

// 3.调用
// 先遵守协议
class TPPReviewCell: UITableViewCell, CellProtocol {
}
// 在用到这个cell的cellForRow里面
let cell = tableView.dequeueReusableCell(withIdentifier: TPPReviewCell.uniqueIdentifier) as! TPPReviewCell
  1. xib中cell的自动计算行高。xib中固定部分的空间,高度一定要是固定值(就算label可以根据字体计算出行号,为避免xib中红色错误提示,也给label设置固定值),通常只有红色Label部分是变化的高度,如果要所有文字全部显示,那么label的numberOfLines设置为0(我这个图设置的是最多只显示5行)


    cell自动计算行高
// 1. 初始化tableView
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 116.0

//2. 设置tableView的行高时
if (某些行需要固定的高度) {
    return 固定高度 
} else {
    return UITableViewAutomaticDimension
}

相关文章

网友评论

      本文标题:Swift 小知识点

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