gpt4 book ai didi

iOS AutoLayout 不适用于嵌入到 ScrollView 中的 View

转载 作者:行者123 更新时间:2023-11-28 17:56:53 25 4
gpt4 key购买 nike

我想将 View 相互嵌入(在当前情况下嵌入 ScrollView 以允许显示比屏幕尺寸更高的内容)并使用 iOS 6.0 的 AutoLayout 功能以避免不断计算内容尺寸。

我有以下 ViewController 的 View ,其中包含一个 UIScrollView:

enter image description here

我想在此 ScrollView 中显示我的 ChildVC 的 View :

请注意标签是多行的并且包含“很多”文本,还定义了自动布局约束(特别是大于或等于高度属性)。

enter image description here

我创建了 childVC 并通过以下代码将其添加到主 VC 的 View 中:

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

childVC = [[ChildVC alloc] initWithNibName:@"ChildVC" bundle:nil];

self.myScrollView.translatesAutoresizingMaskIntoConstraints = NO;
childVC.view.translatesAutoresizingMaskIntoConstraints = NO;

[self.myScrollView addSubview:childVC.view];

NSDictionary *viewsDictionary = @{ @"subView" : childVC.view};

NSString* constr = [NSString stringWithFormat:@"|-0-[subView(%f)]-0-|", self.myScrollView.frame.size.width];
[self.myScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:constr options:0 metrics: 0 views:viewsDictionary]];

[self.myScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[subView]-(>=0)-|" options:0 metrics: 0 views:viewsDictionary]];
}

content-view(我猜这将是 childVC 的 View )的约束是代码中设置的唯一内容,因为我只想要一个垂直滚动条,我希望 child-view 的内容(水平)缩小到显示在滚动查看器中。

我的输出是这样的:

enter image description here

UI 已显示,缩小但我的标签不会垂直调整大小因此它不会显示整个文本 :(

我尝试在标签上设置translatesAutoresizingMaskIntoConstraints,但没有成功。

我很感激任何帮助,因为我已经为此苦苦挣扎了好几天:/

最佳答案

就我个人而言,我认为这些约束和自动布局功能并不总是完全按照我们希望的方式工作。 (尤其是在不同的屏幕尺寸上)。

因此,我通常会在 viewDidLoad 方法中添加几行代码,以将某些对象四处移动几个像素。您还可以更改大小等。

从字面上看,这样一个简单的 Action 就可以在用户没有注意到任何动画的情况下达到目的:

object_name.frame = CGRectOffset(object_name.frame, 0, -40.0f);

关于iOS AutoLayout 不适用于嵌入到 ScrollView 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17524152/

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