ios - 以编程方式创建的 UITextView 不再与 iOS 9 一起滚动

标签 ios objective-c uitextview ios9

以下代码以编程方式创建一个 TextView ,当文本超过设备屏幕高度时该 View 会滚动。该代码在 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;

关于ios - 以编程方式创建的 UITextView 不再与 iOS 9 一起滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32669475/

相关文章:

ios - 应用程序在后台时使用iBeacon进行广告

ios - Firebase GIDSignInButton "firing"/无需用户触摸或交互即可登录

iphone - 如何使用 NSCoder

ios - 推送通知更改 AppIcon 的角标(Badge)

objective-c - iPhone 测试 : testing IBOutlets

ios - 评估 NSString 大小以填充 UITextView

iOS:如何在 UIScrollView 中显示长文本?

ios - 使用 UILabels 和 UITableViewCell 创建自定义 UIActionSheet/UIView

ios - 在 Inkscape 中为 iOS 创建 tabBarItem 图像时透明度失败

ios - 在滚动到顶部的 UITextView 上检测向下滑动