Scroll to bottom of UITextView erratic in iOS 7

前端 未结 9 1720
无人及你
无人及你 2020-12-01 04:58

The following code will work fine in iOS < 7.0. In iOS 7 the scrolling will be choppy and erratic while the UITextView is updating. I\'m not sure if this is a bug in iO

9条回答
  •  余生分开走
    2020-12-01 05:08

    This is obviously an iOS 7 bug. Here is a workaround until apple fixes it. The workaround is basically instantiates a UITextView by creating an NSTextStorage and NSLayoutManager from scratch. Apple must have forgotten to initialize something in UITextView initialization method. I filed a bug report and I hope you do too.

    // ios7 bug fix
    // check if the device is running iOS 7.0 or later
    NSString *reqSysVer = @"7.0";
    NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
    BOOL osVersionSupported = ([currSysVer compare:reqSysVer  options:NSNumericSearch] != NSOrderedAscending);
    
    if (osVersionSupported) {
        NSTextStorage* textStorage = [[NSTextStorage alloc] init];
        NSLayoutManager* layoutManager = [NSLayoutManager new];
        [textStorage addLayoutManager:layoutManager];
        NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:self.view.bounds.size];
        [layoutManager addTextContainer:textContainer];
        yourTextView = [[UITextView alloc] initWithFrame:someFrameForYourTextView
                                           textContainer:textContainer];
        // if using ARC, remove these 3 lines
        [textContainer release];
        [layoutManager release];
        [textStorage release];
    }
    else {
        yourTextView = [[UITextView alloc] initWithFrame:someFrameForYourTextView];
    }
    

提交回复
热议问题