从核心数据本质上调整大小(swift 3)
intrinsically sizing from core data (swift 3)
我在一个单元格中有一个名称标签,该名称标签具有固有大小,因此时间标签的左锚点可能始终与名称标签的左锚点相距 5 个像素。但是,当我从核心数据中引入名称时,它采用初始设置名称并使用该名称来本质上调整名称标签框架的大小。
这里是我创建标签视图的地方。
let nameLabel: UILabel = {
let nlabel = UILabel()
nlabel.text = "Barack Obama"
nlabel.font = UIFont.boldSystemFont(ofSize: 12)
nlabel.textAlignment = .left
nlabel.frame.size = nlabel.intrinsicContentSize
nlabel.backgroundColor = UIColor.blue
print("nlabel frame \(nlabel.frame.size)")
return nlabel
}()
nlabel.text 每个单元格等于 cell?.friend?.name
我能够成功地将名称加载到单元格中,但是框架的大小仍然好像 nlabel.text 等于第一个 nlabel.text。
有什么建议吗?
假设您使用的是自动布局,请删除此行:
nlabel.frame.size = nlabel.intrinsicContentSize
并添加这一行:
nlabel.translatesAutoresizingMaskIntoConstraints = false
使用自动布局时,您不得自行设置框架大小。
您为您创建的每个标签指定了相同的尺寸。大小不会因为您更改其中包含的文本而改变。
标签具有固有大小,但是当您在代码中而不是故事板中创建标签时,您需要将 translatesAutoResizingMaskIntoConstraints 设置为 false 才能使其正常工作。当您在故事板中创建标签时,会自动为您完成。
我在一个单元格中有一个名称标签,该名称标签具有固有大小,因此时间标签的左锚点可能始终与名称标签的左锚点相距 5 个像素。但是,当我从核心数据中引入名称时,它采用初始设置名称并使用该名称来本质上调整名称标签框架的大小。
这里是我创建标签视图的地方。
let nameLabel: UILabel = {
let nlabel = UILabel()
nlabel.text = "Barack Obama"
nlabel.font = UIFont.boldSystemFont(ofSize: 12)
nlabel.textAlignment = .left
nlabel.frame.size = nlabel.intrinsicContentSize
nlabel.backgroundColor = UIColor.blue
print("nlabel frame \(nlabel.frame.size)")
return nlabel
}()
nlabel.text 每个单元格等于 cell?.friend?.name
我能够成功地将名称加载到单元格中,但是框架的大小仍然好像 nlabel.text 等于第一个 nlabel.text。
有什么建议吗?
假设您使用的是自动布局,请删除此行:
nlabel.frame.size = nlabel.intrinsicContentSize
并添加这一行:
nlabel.translatesAutoresizingMaskIntoConstraints = false
使用自动布局时,您不得自行设置框架大小。
您为您创建的每个标签指定了相同的尺寸。大小不会因为您更改其中包含的文本而改变。
标签具有固有大小,但是当您在代码中而不是故事板中创建标签时,您需要将 translatesAutoResizingMaskIntoConstraints 设置为 false 才能使其正常工作。当您在故事板中创建标签时,会自动为您完成。