以编程方式创建的UITextView不再使用iOS 9滚动

以编程方式创建的UITextView不再使用iOS 9滚动,第1张

概述以下代码以编程方式创建一个文本视图,该文本视图在文本超出设备屏幕高度时滚动.代码在iOS 7和iOS 8中没有问题.但是,文本字段不再使用相同代码的iOS 9滚动.通过几个小时的尝试找到修复,这个问题非常令人沮丧,所以我非常感谢任何帮助.提前致谢.这是代码: - (void)createTextView { //1. Create the text storage that backs the e 以下代码以编程方式创建一个文本视图,该文本视图在文本超出设备屏幕高度时滚动.代码在iOS 7和iOS 8中没有问题.但是,文本字段不再使用相同代码的iOS 9滚动.通过几个小时的尝试找到修复,这个问题非常令人沮丧,所以我非常感谢任何帮助.提前致谢.这是代码:

- (voID)createTextVIEw

{

//1. Create the text storage that backs the editor.NSDictionary *attrs = @{NSFontAttributename: [UIFont preferredFontForTextStyle:UIFontTextStyleBody]};NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:notesAndReference attributes:attrs];_textStorage = [[SyntaxHighlightTextStorage alloc] init];[_textStorage appendAttributedString:attrString];CGRect newTextVIEwRect = self.vIEw.bounds;//2. Create the layout manager.NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init];//3. Create a text container.CGSize containerSize = CGSizeMake(newTextVIEwRect.size.wIDth,CGfloat_MAX);NSTextContainer *container = [[NSTextContainer alloc] initWithSize:containerSize];container.wIDthTracksTextVIEw = YES;[layoutManager addTextContainer:container];[_textStorage addLayoutManager:layoutManager];//4. Create a UITextVIEw.textVIEw = [[UITextVIEw alloc] initWithFrame:newTextVIEwRect textContainer:container];textVIEw.scrollEnabled = YES;textVIEw.editable = YES;textVIEw.delegate = self;[self.vIEw addSubvIEw:textVIEw];

}

解决方法 在尝试了几个小时来解决这个问题后,我终于添加了一行代码来禁用滚动,然后重新启用它,这解决了问题!滚动现在可以像以前一样工作.正如我在原始问题中提到的,代码适用于iOS 7和iOS 8,但现在不适用于iOS 9,因此不确定此问题是否代表了错误或预期行为的变化.任何评论都会受到欢迎.谢谢.这是修复:

textVIEw.scrollEnabled = NO; textVIEw.scrollEnabled = YES;
总结

以上是内存溢出为你收集整理的以编程方式创建的UITextView不再使用iOS 9滚动全部内容,希望文章能够帮你解决以编程方式创建的UITextView不再使用iOS 9滚动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1014380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存