iOS: 动态高度 UIScrollview 自动布局
iOS: dynamic height UIScrollview autolayout
我正在制作类似 Facebook 的文章详细信息视图。
此视图包含内容(个人资料图片、作者、日期、内容文本)和评论写入视图。
所以顶视图是 UIScrollview
,底视图是 UIView。
UIScrollView
有UIImageview
,UILabel*3
,
UIView
有 UITextView
, UIButton
.
当触摸 UIView
中的 UITextView
时,键盘出现。
所以 UIScrollview
会变小, UIView
位置会移动。
并且用户将写入文本,将添加 UITextView
行,因此 UIView
大小将被扩展。
最终UIScrollview
和UIView
高度未确定。
如何设置此视图的自动布局?
可以试试:
我下面说的是关于约束:
UIScrollView top, left, right equal self.view top, left, right
UIScrollView 底部等于 UIView 底部
UIView left, right, bottom equal self.view left, right, bottom UIView height equal 200(you set it)
好的,当你的 UITextView 被触摸时,将 UIView 高度限制设置为你想要的(可能是 300)
我觉得可行!
不要让 UIView 用于 textView 和按钮,我建议你只添加一个 scrollView 并将其约束设置如下
然后在滚动视图中添加一个UIView作为容器视图,(select滚动视图转到编辑器,select嵌入,select查看)并设置其约束如下
现在将您的 imageView、标签、textView 和按钮一一添加,并确保将 imageView 的顶部 space 设置为视图并将按钮(位于屏幕底部)的底部设置为 space视图,以及所有其他视图的顶部 space 和底部 space 到它们最近的视图,这样滚动视图可以轻松确定它所需的高度。
最后一件事,当用户在 textView 中单击时,您可能需要向上移动 scrollView 以使 textView 在用户键入时可见,要做到这一点,一个简单的解决方案就是下载库 'TPKeyboardAvoiding'从 here 添加所有 class 到您的项目,完成后,将您的 scrollView 的自定义 class 设置为 'TPKeyboardAvoidingScrollView'。清理并 运行 项目,它应该可以工作..
我正在制作类似 Facebook 的文章详细信息视图。
此视图包含内容(个人资料图片、作者、日期、内容文本)和评论写入视图。
所以顶视图是 UIScrollview
,底视图是 UIView。
UIScrollView
有UIImageview
,UILabel*3
,
UIView
有 UITextView
, UIButton
.
当触摸 UIView
中的 UITextView
时,键盘出现。
所以 UIScrollview
会变小, UIView
位置会移动。
并且用户将写入文本,将添加 UITextView
行,因此 UIView
大小将被扩展。
最终UIScrollview
和UIView
高度未确定。
如何设置此视图的自动布局?
可以试试: 我下面说的是关于约束: UIScrollView top, left, right equal self.view top, left, right UIScrollView 底部等于 UIView 底部 UIView left, right, bottom equal self.view left, right, bottom UIView height equal 200(you set it)
好的,当你的 UITextView 被触摸时,将 UIView 高度限制设置为你想要的(可能是 300)
我觉得可行!
不要让 UIView 用于 textView 和按钮,我建议你只添加一个 scrollView 并将其约束设置如下
然后在滚动视图中添加一个UIView作为容器视图,(select滚动视图转到编辑器,select嵌入,select查看)并设置其约束如下
现在将您的 imageView、标签、textView 和按钮一一添加,并确保将 imageView 的顶部 space 设置为视图并将按钮(位于屏幕底部)的底部设置为 space视图,以及所有其他视图的顶部 space 和底部 space 到它们最近的视图,这样滚动视图可以轻松确定它所需的高度。
最后一件事,当用户在 textView 中单击时,您可能需要向上移动 scrollView 以使 textView 在用户键入时可见,要做到这一点,一个简单的解决方案就是下载库 'TPKeyboardAvoiding'从 here 添加所有 class 到您的项目,完成后,将您的 scrollView 的自定义 class 设置为 'TPKeyboardAvoidingScrollView'。清理并 运行 项目,它应该可以工作..