Questions tagged «ios-autolayout»

15
什么是NSLayoutConstraint“ UIView-Encapsulated-Layout-Height”,我应该如何强制其重新进行干净的计算?
我UITableView在iOS 8下运行,并且正在使用情节提要中的自动单元高度。 我的一个单元格包含一个UITextView,我需要它根据用户输入进行收缩和扩展-点击以收缩/扩展文本。 我通过向文本视图添加运行时约束并响应用户事件来更改约束的常量来做到这一点: -(void)collapse:(BOOL)collapse; { _collapsed = collapse; if(collapse) [_collapsedtextHeightConstraint setConstant: kCollapsedHeight]; // 70.0 else [_collapsedtextHeightConstraint setConstant: [self idealCellHeightToShowFullText]]; [self setNeedsUpdateConstraints]; } 每当执行此操作时,我都会将其包装在tableView更新中并调用[tableView setNeedsUpdateConstraints]: [tableView beginUpdates]; [_briefCell collapse:!_showFullBriefText]; [tableView setNeedsUpdateConstraints]; // I have also tried // [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop]; // with exactly the same results. [tableView endUpdates]; 当我这样做时,我的单元格确实会展开(并在执行过程中设置动画),但是我收到了约束警告: 2014-07-31 …

24
UITableView动态单元格高度仅在某些滚动后才正确
我有一个使用自动布局在情节提要中定义UITableView的自UITableViewCell定义。该单元具有多个多行UILabels。 在UITableView出现要正确计算单元格高度,但在最初的几个细胞高度不正确的标签之间的分歧。滚动一点后,一切都会按预期进行(即使最初不正确的单元格也是如此)。 - (void)viewDidLoad { [super viewDidLoad] // ... self.tableView.rowHeight = UITableViewAutomaticDimension; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { TableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"TestCell"]; // ... // Set label.text for variable length string. return cell; } 有什么我可能会丢失的东西,导致自动布局无法在最初的几次中完成它的工作吗? 我创建了一个示例项目来演示此行为。


3
Xcode 8中的“因性而异”是什么?
我正在使用AutoLayout和Size类,但是随着iOS 10和新Xcode 8.0的发布,有一个新选项Vary for Traits。是否针对不同宽度和高度的设备替换了尺寸分类。 通过选中width复选框,将显示varying 14 compact width devices。 通过选中height复选框,将显示varying 18 compact height devices。 通过选中两个复选框,将显示varying 11 compact width regular height devices。 如何利用此选项?我们可以将AutoLayout与Xcode7.0之类的大小类一起使用吗?如果任何人有深入的知识,请解释。

14
如何将UICollectionView的高度调整为UICollectionView的内容大小的高度?
我希望UICollectionView(红色的)缩小到内容大小的高度,在这种情况下,UICollectionViewCells(黄色的)是因为有很多空白空间。我尝试使用的是: override func layoutSubviews() { super.layoutSubviews() if !__CGSizeEqualToSize(bounds.size, self.intrinsicContentSize) { self.invalidateIntrinsicContentSize() } } override var intrinsicContentSize: CGSize { return self.collection.contentSize } 但return self.collection.contentSize总是返回(width,0),因此,它会缩小到高度30的值(尽管我在constaint> = 30的情况下在XIB文件中为高度设置的值)。

9
Swift默认AlertViewController突破约束
我正在尝试使用.actionSheet样式的默认AlertViewController。由于某种原因,警报导致约束错误。只要没有通过按钮触发(显示)alertController,整个视图就不会出现约束错误。难道这是Xcode的错误? 我得到的确切错误是这样的: 2019-04-12 15:33:29.584076+0200 Appname[4688:39368] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the …

6
如何创建视图之间具有可变间距的UIStackView?
我有一个简单的水平结构UIStackView,里面堆叠了几个UIView。我的目标是在视图之间创建可变的间距。我很清楚,我可以使用“ spacing”属性在子视图之间创建恒定的空间。但是我的目标是创建可变空间。请注意,如果可能的话,我要避免使用充当间隔符的不可见视图。 我想到的最好的办法是将我包装UIViews在一个单独的UIStackView,并使用layoutMarginsRelativeArrangement = YES尊重我内部堆栈的布局边距。我希望我可以采取任何类似的措施,UIView而不必诉诸这种丑陋的解决方法。这是我的示例代码: // Create stack view UIStackView *stackView = [[UIStackView alloc] init]; stackView.translatesAutoresizingMaskIntoConstraints = NO; stackView.axis = UILayoutConstraintAxisHorizontal; stackView.alignment = UIStackViewAlignmentCenter; stackView.layoutMarginsRelativeArrangement = YES; // Create subview UIView *view1 = [[UIView alloc] init]; view1.translatesAutoresizingMaskIntoConstraints = NO; // ... Add Auto Layout constraints for height / width // …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.