gpt4 book ai didi

ios - subview 的约束在 iOS 8、XCode 6 (6A313) 中不起作用。适用于 iOS 7

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:12 24 4
gpt4 key购买 nike

只需将使用 instantiateViewControllerWithIdentifier 创建的 Controller 中的 subview UIView 添加到当前 Controller View ,并添加约束以保持新 subview 的大小以覆盖整个区域。下面的代码适用于 iOS 7。iOS 8 将 subview 调整为左上角的一小部分。 iOS 7 实现了我的预期,即在父 View 的整个尺寸范围内调整 subview 的尺寸。我会附上一张图片,但没有代表。将 translatesAutoresizingMaskIntoConstraints 设置为 YES 可解决此问题,但随后 View 不会遵守约束并在方向更改或尺寸更改时调整大小。

spotCheckStoresViewController = [self.storyboard     instantiateViewControllerWithIdentifier:@"visitStoresViewController"];
spotCheckStoresViewController.mainViewController = self;
spotCheckStoresViewController.dataMode = kDataModeViews;
spotCheckStoresViewController.lastRow = [self getViewsLastRow];
spotCheckStoresViewController.view.tag = -200;

currentView = spotCheckStoresViewController.view;

[self addChildViewController:spotCheckStoresViewController];

[self.view insertSubview:currentView belowSubview:_menuViewController.view];

currentView.translatesAutoresizingMaskIntoConstraints = NO;

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:currentView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1.0 constant:0.0]];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:currentView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1.0 constant:0.0]];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:currentView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0]];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:currentView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0]];

//[self.view updateConstraints];
//[self.view layoutIfNeeded];

我也试过设置 subview 的框架。有什么想法可能会在 iOS 8 中更改以改变以这种方式使用的约束的行为吗?

最佳答案

在我的例子中,问题与标记为 UIView-Encapsulated-Layout-WidthUIView-Encapsulated-Layout-Height 的约束有关。当我删除它们时,一切都表现得好像我的 View 大小为零,一切都集中在屏幕的左上角。当我离开它们时,新的约束按预期工作。我还保留了标记为 _UILayoutSupportConstraint 的约束。

关于ios - subview 的约束在 iOS 8、XCode 6 (6A313) 中不起作用。适用于 iOS 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25817609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com