gpt4 book ai didi

ios - 根据内容的 UITextView 高度在 iOS 9 中是错误的

转载 作者:可可西里 更新时间:2023-11-01 05:43:32 33 4
gpt4 key购买 nike

我通过编程方式将 View 动态添加到具有布局约束的 ScrollView 中,对于 TextView 组件,我想根据 TextView 中设置的文本设置高度约束,所以我创建了扩展 UITextView 的类。在 TextView 类中,我编写了以下代码来添加高度约束。

#import "CETextView.h"

@implementation CETextView

- (void)layoutSubviews
{
[super layoutSubviews];

if (!self.heightConstraint)
{
self.heightConstraint = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:100];
[self addConstraint:self.heightConstraint];
}
CGRect lRect = [self contentSizeRect];

CGSize descriptionSize = lRect.size;
self.heightConstraint.constant = descriptionSize.height;

}

- (CGRect)contentSizeRect
{
NSTextContainer* textContainer = [self textContainer];
NSLayoutManager* layoutManager = [self layoutManager];
[layoutManager ensureLayoutForTextContainer: textContainer];
CGRect lRect = CGRectMake(0, 0,320, 500);
lRect.size = self.contentSize;
lRect.size.height = lRect.size.height + 5;
return lRect;
}


@end

此代码在 iOS 8.0 中给出了正确的高度,但在 iOS 9.0 中给出了错误的高度。我查看了 iOS 9.0 新版本的苹果文档,有一些与自动布局相关的更改。

感谢任何帮助。

最佳答案

不确定您是否解决了这个问题,但我用头撞墙几个小时,直到我确保为我尝试调整大小的 UITextView 将启用滚动设置为 YES。不确定这是否会解决您的问题,它似乎略有不同。

iOS 8 将启用滚动设置为 NO 时可以很好地调整高度,但如果启用滚动设置为 NO,iOS 9 似乎不会调整高度限制。我只是选中了 Storyboard中所有 TextView 的框,然后调整了所有内容的大小。

关于ios - 根据内容的 UITextView 高度在 iOS 9 中是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32782716/

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