作者归档:Thregren

不容易错误的 cell 识别码写法

在构建 cell 时,可以将 cell 的识别码设置为其自定义类别的名称。目的是可以清楚的指定识别码并取出Cell,如下所示:

let cell = tableView.dequeueReusableCell(withIdentifier: “RestaurantDetailIconTextCell”, for: indexPath) as! RestaurantDetailIconTextCell


如果使用 String(describing: RestaurantDetailIconTextCell.self), 则会回传类别的名称(也就是 「RestaurantDetailIconTextCell 」)

let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: RestaurantDetailIconTextCell.self), for: indexPath) as! RestaurantDetailIconTextCell

那这两种方法哪种好呢?

用第一段代码,是将 cell 的识别码固定写入。如果将识别码打错,Xcode 编译也不会出现任何错误。只有在运行 App 的时候才会发现出现问题。

使用第二段代码,如果打错了类别的名称(比如打成 RestaurantDetailIconTxtCell.self ),Xcode 会马上提示错误。所以更加推荐使用第二种代码。

UIImage View 的主要内容模式 (Content Mode)

UIImageViewUIView 的子类别,其中存在一个内容模式属性用来指定视图如何調整其内容。以下是三个常用的缩放模式:

  • Scale to Fill (默认)
  • Aspect Fit
  • Aspect Fill

UIImageView 默认是 Scale to Fill 模式, 在此模式下,系统会拉伸图片使其符合设定尺寸大小。图片的长宽比会随着拉伸而发生改变。

Aspect Fill 是比较推荐的模式,在这个模式下,系统会等比例缩放图片,来使其符合尺寸大小。这个模式有时候会导致图片重叠到别的视图,这时候可以去图片视图的属性检阅器里,在 Drawing 区块下勾选 「Clip to Bounds」 (修剪至边界)。这样可以避免图片延伸到预期视图之外。