关于UIView的尺寸问题的问题

时间:2011-04-29 05:51:14

标签: iphone cocoa-touch ios

  

可能重复:
  iPhone — the input parameter to UIView's sizeThatFits method

具体来说,它的论点应该是什么?文档说它是接收者的当前大小,但视图总是可以使用self.bounds.size,所以这没有意义。

它应该是可用空间吗?换句话说,父母是否会问孩子,“假设有可用的X x Y点空间,你想要多大的数量?”。

4 个答案:

答案 0 :(得分:8)

当我说“接收器的当前大小”时,我只是认为该文档是错误的。它只是一个用例,但还有其他用例:例如,如果您希望视图返回给定任意大小的最佳大小,您将调用此方法将任意大小作为参数传递。

它应该是可用空间吗?换句话说,是父母问孩子,“假设有可用的X x Y点空间,你想要多大?”。

是的,你有这个想法但是不要将参数的含义限制在“可用空间”。它只是一个任意大小,可能与可用空间或不对应。这取决于您使用该方法的方式。但是,如果视图必须符合作为参数传递的大小,那么视图应始终返回它认为最佳大小(最适合其子视图的大小)。

看这里,这应该回答你的问题:iPhone -- the input parameter to UIView's sizeThatFits method

答案 1 :(得分:2)

几乎就是这样。像UIPickerViewUILabel这样的内容在特定尺寸下的效果最佳,因此它们返回的是特定尺寸,而不是更一般的bounds尺寸。

答案 2 :(得分:0)

只需sizeThatFit:方法必须用新的CGSize覆盖,而sizeToFit方法调用sizeThatFit来调整大小。

答案 3 :(得分:-1)

sizeThatFits可以在superview布置其子项时使用。

假设你有一个300像素宽的超视图,你还不知道它有多高 - 高度将基于孩子们身高的总和。在这种情况下,superview将传递一个sizeToFit大小来表示剩余的可用空间,这可能与superview的边界不同。