Swift AutoLayout:UIScrollView 内的 UITextViews 让人头疼

Posted

技术标签:

【中文标题】Swift AutoLayout:UIScrollView 内的 UITextViews 让人头疼【英文标题】:Swift AutoLayout: UITextViews inside UIScrollView headache 【发布时间】:2019-06-29 20:14:43 【问题描述】:

我正试图了解UIScrollViews 的工作原理,虽然已经有一些很好的答案,但它们似乎没有涵盖UITextViews,所以我想知道是否有人可以告诉我更多关于什么UITextViews 需要在 UIScrollView 中工作。我的设置如下图所示,但我收到的错误是 ScrollView 没有高度或宽度限制。

如果可以的话,我将不胜感激,如果您能详细说明为什么这不起作用以及 TextViews 在放置在 ScrollViews 中时有什么要求。

【问题讨论】:

嗨,你能和我们分享这个故事板吗,它会更容易检测出真正的问题,但首先尝试从属性检查器中的 UITextView 中删除 "Scrolling Enabled" 复选标记 嘿 @Andrew isScrollable 在 textviews 上被禁用。你可以在这里看到完整的故事板:dropbox.com/s/g7q1lbj0pxx14jh/Main.storyboard?dl=0 【参考方案1】:

所以https://www.dropbox.com/s/gujry7ngziaipm7/Main.storyboard?dl=0 这里是固定的变体。 我发现了一些错误:

    Title Input 的顶部约束是从另一个层次结构查看

    Content View - 您在 UIScrollView 中的根视图没有 x、y 约束,因此我添加了尾随、底部、顶部和前导约束。

也许还有一些提示:

你的约束应该是相对的,所以你不需要从Safe Layout偏移所有视图。

尝试将您的viewControllers 分隔到不同的 Storyboard 文件中,否则如果您要在团队中工作,在 git 中修复合并问题将是一件非常头疼的事情)

希望它对您的项目有所帮助)

【讨论】:

除了你的建议之外,我设法通过修复另一个问题来解决它:容器视图和滚动视图之间相等宽度的优先级设置为 250,它应该是 1000。只有等高需要 250。再次感谢。

以上是关于Swift AutoLayout:UIScrollView 内的 UITextViews 让人头疼的主要内容,如果未能解决你的问题,请参考以下文章

Swift + Autolayout:旋转 UILabel,保持在 UIView 旁边

swift-无法使用 AutoLayout 在 UIScrollView 中居中 UIImageView

swift CollectionViewCell的Autolayout

使用 Swift (AutoLayout) 固定 UIImage 的宽度和高度

使用 AutoLayout 以编程方式将 UILabel 添加到 ScrollView (swift)

AutoLayout - 使用水平约束保持图像的比例(Swift Xcode 6)