我已经阅读了文档。但我仍然不确定何时不需要将其设置为false
。在下面的代码中,如果将其设置为,false
则根本看不到标题。如果我将其保留为true
,那么一切都很好。
View调试层次结构中的以下内容将给出警告“ 宽度 和 位置 不明确”。
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = UIView()
header.translatesAutoresizingMaskIntoConstraints = false
header.backgroundColor = .orange
header.heightAnchor.constraint(equalToConstant: 10).isActive = true
return header
}
我以为只要需要修改代码中的任何内容,都必须设置translatesAutoresizingMaskIntoConstraints
为false
。
如果您需要删除其所有约束,然后将其设置为false
,然后添加所需的内容,则可能是更正确的说法,在这种情况下,您需要为所有四个方面添加约束。
但是,如果您只需要保留系统为您提供的内容,则在这种情况下,将由tableView管理其位置和宽度,然后保留为true
。
那正确吗?
translatesAutoresizingMaskIntoConstraints
在以下情况下需要将其设置为false:
UIView
在代码中创建了一个基于对象的对象(如果文件启用了自动布局,Storyboard / NIB将为您设置该对象),在这种情况下,并非所有这些都是正确的。具体来说,是第2点。
从标题视图返回后,标题视图viewForHeaderInSection
将添加到表格视图,并frame
根据表格视图的当前宽度和您从中返回的高度进行设置heightForHeaderInSection
。
您可以将子视图添加到根头视图(header
在代码中),并使用约束相对于头视图布局这些子视图。
您已经发现了无法在注释中对标题视图本身使用自动布局的原因。在创建视图时,它还不属于视图层次结构,因此您不能将其边缘约束到任何东西。
为了具有动态标头大小,您将需要在视图中添加子视图,header
并在这些子视图和之间添加约束header
。然后,自动版式可以使用的固有内容大小header
来确定标题视图的大小。
由于您不限制的框架header
,因此请勿设置translatesAutoresizingMaskIntoConstraints
为false
。您将需要确保子视图上有足够的约束以进行自动布局以确定的大小header
。
如果子视图的内在内容大小不够,则需要从上到下连续的约束线,并且子视图可能需要一些高度约束。
您添加的所有子视图header
都 需要translatesAutoresizingMaskIntoConstraints
设置为false
您还需要返回 的东西 从estimatedHeightForHeaderInSection
-越接近实际的标题高度的更好-
如果你正在使用tableview.sectionHeaderHeight = UITableViewAutomaticDimension
我已阅读文档。但我仍然不确定何时不需要将其设置为 。在下面的代码中,如果我将其设置为 ,我根本看不到标头。如果我把它留,那么一切都很好。 以下视图调试层次结构将发出警告“宽度和位置不明确”。 我想每当我需要修改代码中的任何内容时,我都必须将设置为。 也许更正确的说法是,如果您需要删除它的所有约束,然后将其设置为< code>false,然后添加您喜欢的内容,在这种情况下,您需要为所有4条边添加约束
问题内容: 我知道他们两个都禁用了Nagle的算法。 我什么时候应该/不应该使用它们中的每一个? 问题答案: 首先,不是所有人都禁用Nagle的算法。 Nagle的算法用于减少有线中更多的小型网络数据包。该算法是:如果数据小于限制(通常是MSS),请等待直到收到先前发送的数据包的ACK,同时累积用户的数据。然后发送累积的数据。 这将对telnet等应用程序有所帮助。但是,在发送流数据时,等待A
问题内容: 在该类中,有两个字符串,和。 有什么不同?我什么时候应该使用另一个? 问题答案: 如果你的意思是和则: 用于在文件路径列表中分隔各个文件路径。考虑在上的环境变量。您使用a分隔文件路径,因此在上将是;。 是或用于拆分到特定文件的路径。例如在上,或
问题内容: 在集成我以前从未使用过的Django应用程序时,我发现了用于定义类中函数的两种不同方式。作者似乎非常有意地使用了它们。第一个是我自己经常使用的: 另一个是我不使用的,主要是因为我不知道何时使用它,以及什么用途: 在Python文档中,装饰器的解释如下: 类方法将类作为隐式第一个参数接收,就像实例方法接收实例一样。 所以我想指的是自己(而不是实例)。我不完全理解为什么会这样,因为我总是可
问题内容: 我莫名其妙地迷糊了自己。 不知何故,我想到用AJAX(如$ .post)打PHP时,您必须回显“ true”或“ false”,而不是返回true / false。我现在知道不是这种情况,但是有人可以为我分解吗? 测试布尔值是否存在问题?像这儿 那是有问题的情况,对吗?在这里,我不能返回true / false,而是必须回显一个字符串并测试该字符串,是吗? 但是我看到布尔true /
声明集合不会抑制其任何功能(仍然可以、、、等),但允许编译器进行更多优化。 在什么情况下,最好更改引用(不允许使用final)而不是使用现有集合的方法?