我正在尝试理解XCode6下自动布局的工作原理,但有很多神秘的东西让我无从下手。自动布局和约束的哲学可能很难学习,但我意识到使用这些工具可以使生活变得更加轻松...
供您参考,我需要构建一个聊天视图,其中包含一个表格(消息)和一个包含文本字段(发送消息窗格)的视图嵌套在一个UIView中,该UIView再次嵌套在UIScrollView中,以便在textfield下方出现键盘时将滚动视图向上移动。
我阅读了很多教程并观看了很多视频,直到我找到了有用的教程Using UIScrollView with Auto Layout in iOS。该教程还有一个Github上的Xcode项目来解释教程内容。
在他的教程中,Mike Woelmer说:
在旧的UIScrollView中设置内容大小时,最大的痛点之一是要将内容大小通知滚动视图。如果UIScrollView中的内容是图像,则计算内容大小相对简单。但如果您的滚动视图包括按钮、标签、自定义视图和文本字段等各种元素,则不太容易。需要进行冗长的代码调整以反映设备旋转和手机尺寸差异的不断变化。
因此,Mike解释了如何适应UIView,使用占位符并强制将视图放置在滚动视图内以适应设备屏幕,在viewDidLoad中创建了一些NSLayoutConstraint:
解决方案是查看滚动视图外部并将约束附加到视图控制器的主视图。这不能在界面构建器中完成,因此我们必须编写一些代码。虽然界面构建器仍在抱怨,但我们必须添加一个占位符宽度约束以使其满意。
我尝试使用教程的代码部分来为我的项目创建工作视图控制器,但我无法满足我的需求(我总是出错)。哪种方法最好?我走在正确的道路上吗?
供您参考,我需要构建一个聊天视图,其中包含一个表格(消息)和一个包含文本字段(发送消息窗格)的视图嵌套在一个UIView中,该UIView再次嵌套在UIScrollView中,以便在textfield下方出现键盘时将滚动视图向上移动。
我阅读了很多教程并观看了很多视频,直到我找到了有用的教程Using UIScrollView with Auto Layout in iOS。该教程还有一个Github上的Xcode项目来解释教程内容。
在他的教程中,Mike Woelmer说:
在旧的UIScrollView中设置内容大小时,最大的痛点之一是要将内容大小通知滚动视图。如果UIScrollView中的内容是图像,则计算内容大小相对简单。但如果您的滚动视图包括按钮、标签、自定义视图和文本字段等各种元素,则不太容易。需要进行冗长的代码调整以反映设备旋转和手机尺寸差异的不断变化。
因此,Mike解释了如何适应UIView,使用占位符并强制将视图放置在滚动视图内以适应设备屏幕,在viewDidLoad中创建了一些NSLayoutConstraint:
解决方案是查看滚动视图外部并将约束附加到视图控制器的主视图。这不能在界面构建器中完成,因此我们必须编写一些代码。虽然界面构建器仍在抱怨,但我们必须添加一个占位符宽度约束以使其满意。
我尝试使用教程的代码部分来为我的项目创建工作视图控制器,但我无法满足我的需求(我总是出错)。哪种方法最好?我走在正确的道路上吗?
最后但同样重要的是,我是意大利人,所以请谅解我的英语。如果有什么不够清晰,请留下评论。