iOS UIScrollview自动布局- UILayoutFittingCompressedSize



我在下面的链接中遵循苹果关于使用UIScrollView实现自动布局的指导方针。http://developer.apple.com/library/ios/releasenotes/一般/RN-iOSSDK-6_0/index . html

它说,"或者,你可以创建一个视图子树进入滚动视图,设置你的约束,并调用systemLayoutSizeFittingSize:方法(与UILayoutFittingCompressedSize选项)来找到你想要使用的大小为你的内容视图和滚动视图的contentSize属性。"

我的问题是当我调用

CGSize newSize = [self.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

newSize的宽度大于320。我如何约束它,使newSize的宽度为320,所以函数systemLayoutSizeFittingSize返回一个大的高度,以适合所有的视图?是否有一个不同的论点,我可以使用而不是UILayoutFittingCompressedSize?

谢谢!

编辑:我有contentView的UILabel子视图,它的numberolines被设置为0。然而,我看到,当我在这个UILabel上调用sizeThatFits时,它返回的宽度大于320。因此,自我。contentView方法调用返回一个newSize,它足够大来支持UILabel。

因此,我认为问题源于我的UILabel。当调用sizeToFit时,我如何确保UILabel返回小于320的宽度,因此只有高度被缩放以适合文本主体?

找到解决办法了

属性称为preferredmaxlayoutidth为UILabel为我工作。我将其应用于UILabel,值为320,现在是self。contentView方法返回的宽度不大于320。

值得注意的是,UILabel sizeThatFits方法没有考虑preferredmaxlayoutidth,因为它返回的CGSize仍然具有比preferredmaxlayoutidth更大的宽度。

最新更新