Xcode - 向 UITableView 添加约束,使其适合所有屏幕尺寸
Posted
技术标签:
【中文标题】Xcode - 向 UITableView 添加约束,使其适合所有屏幕尺寸【英文标题】:Xcode - Adding constraints to UITableView so that it fits all screen sizes 【发布时间】:2015-04-22 17:02:22 【问题描述】:我已经阅读了很多教程并观看了很多关于在 Xcode 中使用约束的视频。出于某种原因,我仍然缺少使用户界面看起来适合所有屏幕尺寸的某些方面。
目前,我在视图控制器上有一个 UITableView。视图控制器设置为“推断”大小,并且我在右侧的助手编辑器预览中打开了所有不同大小的设备,因此我可以查看更改。我遇到了多个问题,试图让约束针对不同的屏幕尺寸正确。
问题 1:UITableView 的宽度设置为 600。这会导致 iPad 预览中表格视图右侧的死区,并导致 UITableView 在较小的设备上延伸太远。如果我使表格视图的宽度更小,使其适合所有屏幕尺寸的预览,然后通过指定 0 并取消选中对边距的约束,将表格视图的左右边缘固定到 Superview 的边缘,结果我在预览中看到的是整个表格视图从每个设备尺寸中完全消失。我对此感到惊讶,因为我认为通过将表格视图固定到边缘,可以使表格视图适合每个屏幕。
问题 2:(这与上面的问题 1 完全不同。)在这种情况下,我将表格视图的大小保留为 600,并且只为包含在表视图。在这种情况下,表格视图对于 iPad 尺寸来说仍然稍微不够宽,并且它在较小的设备上延伸得太远,这使得单元格中的组件被截断并偏离中心。
我主要在 Storyboard 中工作,设置任意宽度、任意高度。但是,如果我将设置更改为紧凑宽度、任何高度,我可以更改约束以更好地适应较小的设备,但在 5.5 英寸屏幕和较小的设备之间工作仍然存在问题。
我想让我的 UITableView 一直延伸到每个设备的边缘,我想让单元格内的视图保持居中并在每个设备上保持它的相对大小。有人对我如何做到这一点有任何建议吗?
【问题讨论】:
您是在常规视图控制器中使用 tablviewcontroller 还是 uitableview。 我在常规视图控制器中使用 UITableView。 这很奇怪,因为安德烈所说的应该有效。所以你只是把一个 uitableview 从库中拖出来放到 VC 中?如果它没有卡入框架,您应该能够将其调整为您想要的任何大小。然后设置约束。您是否尝试过新的 VC? 安德烈的建议确实奏效了。与模拟器上实际显示的结果相比,Assistant Editor Preview 中的结果并不准确。还缺少一个约束,导致布局在运行时显示不正确。不过,它现在正在工作。谢谢。 太棒了,很高兴你成功了! 【参考方案1】:如果您想让您的表格视图“填充”整个屏幕(与设备无关),您唯一需要做的就是将其 4 个边缘(顶部、左侧、底部、右侧)固定到其父视图(视图控制器在您的情况下查看),常数为 0。 您没有指定特定的宽度(例如在您的情况下为 600)或高度。
祝你好运:)
【讨论】:
感谢您的回复,安德烈。我已经尝试过了,但由于某种原因,我的组件仍然超出了较小的屏幕尺寸。我没有将表格视图的宽度指定为约束。我只是看到默认宽度设置为 600 的位置。 不客气!你能不能以某种方式主持你的项目,让我看看? 使用前导空格和尾随空格以上是关于Xcode - 向 UITableView 添加约束,使其适合所有屏幕尺寸的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 4.3.2 中的 UINavigationBar 和 UITableView
如何在 Xcode 10.0 的 UITableView 中添加原型单元格