【发布时间】: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 中的结果并不准确。还缺少一个约束,导致布局在运行时显示不正确。不过,它现在正在工作。谢谢。
-
太棒了,很高兴你成功了!
标签: ios xcode uitableview nslayoutconstraint