objective-c – Interface Builder将对象“锁定”到屏幕边缘

前端之家收集整理的这篇文章主要介绍了objective-c – Interface Builder将对象“锁定”到屏幕边缘前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经阅读了一些关于使用AutoLayout的教程,但我似乎无法弄清楚如何实现我觉得应该非常简单的东西.我正在为3.5英寸和4英寸iPhone / iPod Touch屏幕设计应用程序.这是一个简单的标签栏应用程序,其中UITableView填满了每个标签的全部内容,如下所示:

无论屏幕是3.5英寸还是4英寸,我都希望UITableView锁定到屏幕的边缘.我目前在4英寸屏幕上的工作正常,但在3.5版本中,UITableView超出了屏幕的宽度.

我已经尝试阅读一些AutoLayout教程以及摆弄Interface Builder约束,但没有成功.我很感激您提供的任何帮助.

解决方法

您需要将UITableView附加到父UIView的所有边缘,然后UITableView将展开或缩小以填充设备上的UIView.这将使其在所有iDevices(包括iPad)上看起来都是合适的尺寸.如下面的屏幕截图所示,您可以点击所有虚线红色指南,确保边距设置为0(触摸两侧):

您还可以向左拖动,向右拖动,向上拖动,然后在UITableView上向下拖动,选择“前导空间到容器”,“将空间拖到容器”,“顶部空间到顶部布局指南”和“底部空间到底部布局” “ 分别.

或者,您可以使用Visual Format Language (VFL)(下面的UIViewController的代码假定您的UITableView是一个自动@ @合成的@property命名的tableView):

/* Turn off springs/structs */
self.tableView.translatesAutoresizingMaskIntoConstraints = NO;

/* Leading and trailing constraints */
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_tableView]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableView)]];
/* Top and bottom constraints */
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_tableView]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableView)]];

…或者如果你真的想要明确(并且喜欢打字):

/* Leading constaint (could use NSLayoutAttributeLeft here as well) */
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:0]];
/* Trailing constraint (could use NSLayoutAttributeRight here as well) */
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1 constant:0]];
/* Top constraint */
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
/* Bottom constraint */
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.tableView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0]];

所有这一切的重要之处在于UITableView是UIViewController视图的子代(很可能是).默认情况下,视图将按预期填充屏幕,并且使用上述所有方法,您要求布局紧贴最大化视图的边缘.

原文链接:https://www.f2er.com/c/110542.html

猜你在找的C&C++相关文章