在 UIScrollView 中调整视图大小后,滚动视图不知道它改变了
Posted
技术标签:
【中文标题】在 UIScrollView 中调整视图大小后,滚动视图不知道它改变了【英文标题】:After resizing view inside UIScrollView, the scroll view does not know it changed 【发布时间】:2011-08-29 15:40:15 【问题描述】:我调整了放入 UIScrollView 的视图大小,但滚动视图不知道大小发生了变化。
所以,我尝试删除视图并将其重新添加到 UIScrollView,但这没有帮助。
如何让 UIScrollView 相信它的内容已经改变了大小?
谢谢。
【问题讨论】:
您尝试重置@property(nonatomic) CGSize contentSize
吗?
【参考方案1】:
您是否记得将 UIScrollView 的内容大小(使用 [scrollview setContentSize:]
)设置为新大小?滚动视图无法自行计算,您必须告诉它其内容的大小。
【讨论】:
事实上,我确实忘记了这一点,当我这样做时,它解决了问题。谢谢。【参考方案2】:如果滚动视图是另一个视图的子视图并且您调整了该视图(滚动视图的父视图)的大小,除非您设置了父视图的autoresizesSubviews 属性,否则滚动视图实际上不会调整大小。您还必须设置滚动视图的autoresizingMask。
如果你更喜欢手动布局子视图(仍然假设滚动视图是某些父视图的子视图),你可以在父视图中实现layoutSubviews 来改变子视图的大小/位置,当父视图更改。
【讨论】:
以上是关于在 UIScrollView 中调整视图大小后,滚动视图不知道它改变了的主要内容,如果未能解决你的问题,请参考以下文章
在 UIScrollView 中自动调整 UITextView 的大小
在 UIScrollView 中自动调整 UITextView 的大小