可能重复:
iPhone — the input parameter to UIView's sizeThatFits method
具体来说,它的论点应该是什么?文档说它是接收者的当前大小,但视图总是可以使用self.bounds.size
,所以这没有意义。
它应该是可用空间吗?换句话说,父母是否会问孩子,“假设有可用的X x Y点空间,你想要多大的数量?”。
答案 0 :(得分:8)
当我说“接收器的当前大小”时,我只是认为该文档是错误的。它只是一个用例,但还有其他用例:例如,如果您希望视图返回给定任意大小的最佳大小,您将调用此方法将任意大小作为参数传递。
它应该是可用空间吗?换句话说,是父母问孩子,“假设有可用的X x Y点空间,你想要多大?”。
是的,你有这个想法但是不要将参数的含义限制在“可用空间”。它只是一个任意大小,可能与可用空间或不对应。这取决于您使用该方法的方式。但是,如果视图必须符合作为参数传递的大小,那么视图应始终返回它认为最佳大小(最适合其子视图的大小)。
看这里,这应该回答你的问题:iPhone -- the input parameter to UIView's sizeThatFits method
答案 1 :(得分:2)
几乎就是这样。像UIPickerView
和UILabel
这样的内容在特定尺寸下的效果最佳,因此它们返回的是特定尺寸,而不是更一般的bounds
尺寸。
答案 2 :(得分:0)
只需sizeThatFit:方法必须用新的CGSize覆盖,而sizeToFit方法调用sizeThatFit来调整大小。
答案 3 :(得分:-1)
sizeThatFits可以在superview布置其子项时使用。
假设你有一个300像素宽的超视图,你还不知道它有多高 - 高度将基于孩子们身高的总和。在这种情况下,superview将传递一个sizeToFit大小来表示剩余的可用空间,这可能与superview的边界不同。