gpt4 book ai didi

ios - 约束不适用于 UITextView

转载 作者:可可西里 更新时间:2023-11-01 05:00:30 25 4
gpt4 key购买 nike

我有一个 View Controller ,其中的 View 有两个 ImageView 和两个 TextView 。我关闭了自动布局,并使用以下代码以编程方式设置第一个 TextView 和第一个 ImageView 之间的距离:以下代码位于我的自定义 View Controller 类的 viewDidLoad 方法中。在这两种情况下,我都将自动调整掩码设置为 no,所以我不知道为什么代码不起作用。(tf2_logo 是 ImageView ,itemName 是 TextView )

self.tf2_logo.translatesAutoresizingMaskIntoConstraints = NO;
[self.backpackBackground addConstraint:[NSLayoutConstraint constraintWithItem:self.itemName attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.tf2_logo attribute:NSLayoutAttributeTop multiplier:1.0 constant:-1.0]];
[self.backpackBackground addConstraint:[NSLayoutConstraint constraintWithItem:self.tf2_logo attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.backpackBackground attribute:NSLayoutAttributeLeft multiplier:1.0 constant:17]];

现在我想对我的其他 TextView 做同样的事情,基本上我想将 itemName TextView 和 TextView 之间的距离保持在一定距离。我使用了这段代码:(tf2 是我的另一个 TextView )

self.tf2.translatesAutoresizingMaskIntoConstraints = NO;
[self.backpackBackground addConstraint:[NSLayoutConstraint constraintWithItem:self.itemName attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.tf2 attribute:NSLayoutAttributeTop multiplier:1.0 constant:-3.0]];
[self.backpackBackground addConstraint:[NSLayoutConstraint constraintWithItem:self.tf2 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.tf2_logo attribute:NSLayoutAttributeRight multiplier:1.0 constant:20]];

执行此代码后,tf2 TextView 甚至不会显示在 View Controller 中。有什么问题?

编辑:您可以在这里下载整个项目:https://www.dropbox.com/sh/u820u2ndyrncuz8/P4atI-9CAx

最佳答案

编辑#2:你提到你关闭了自动布局,因为 UITextView 在 iOS7 的顶部有一点差距。要消除差距,请尝试以下操作:

self.tf1.textContainerInset = UIEdgeInsetsZero;

当您记录 textContainerInset 的原始值时,它显示:{8, 0, 8, 0}。两个 8 负责差距(一个在顶部)。上面的行将所有值设置为零,并且内容很好地与框架的顶部对齐。

(编辑#1:完全改变了答案)

我假设您主要希望 imageName UITextView 具有灵活的高度。首先我建议使用自动布局。您可以按照下图在Xcode中设置约束条件:

Constraints

红线是约束条件。绿线是特殊的:它应该是一个高度约束,你在 View Controller 中为它创建一个导出。 (打开文档大纲 View ,在树中找到高度约束,然后按住 Control 键将其拖动到代码中。)

然后在viewDidLoad方法中:

CGSize size = [self.tf1 sizeThatFits:self.tf1.frame.size];
self.tf1Height.constant = size.height;

“lore ipsum”字段的高度现在会根据其内容进行调整。

Screenshot

关于ios - 约束不适用于 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23232544/

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