相关疑难解决方法(0)

UITextView文本内容不是从顶部开始的

我有一个很长的文本来自我的JSON文件,但是当我点击我的UITableViewCell的链接转到我的UIViewController页面时,UITextView文本加载了字符串内容,但它不会从头开始显示内容,我必须向上滚动时间.

我需要做什么?

xcode text objective-c uitextview

76
推荐指数
5
解决办法
3万
查看次数

dispatch_async(dispatch_get_main_queue(),^ {...}); 等到完成?

我的应用程序中有一个场景,我想在一个方法中做一些耗费时间的任务,其中包括一些数据处理和UI更新.我的方法看起来像这样,

- (void)doCalculationsAndUpdateUIs {

    // DATA PROCESSING 1
    // UI UPDATE 1

    // DATA PROCESSING 2
    // UI UPDATE 2

    // DATA PROCESSING 3
    // UI UPDATE 3
} 
Run Code Online (Sandbox Code Playgroud)

由于耗时我想在后台线程上进行数据处理,使用,

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, NULL), ^{
Run Code Online (Sandbox Code Playgroud)

但由于数据处理和UI更新都采用相同的方法,我只想在主线程中使用UI更新,

dispatch_async(dispatch_get_main_queue(), ^{
Run Code Online (Sandbox Code Playgroud)

最后我的方法看起来像这样,

- (void)doCalculationsAndUpdateUIs {

    // DATA PROCESSING 1 
    dispatch_async(dispatch_get_main_queue(), ^{
        // UI UPDATE 1
    });

    /* I expect the control to come here after UI UPDATE 1 */

    // DATA PROCESSING 2
    dispatch_async(dispatch_get_main_queue(), ^{
        // UI UPDATE 2
    });

    /* I expect the control …
Run Code Online (Sandbox Code Playgroud)

multithreading objective-c grand-central-dispatch ios dispatch-async

44
推荐指数
3
解决办法
11万
查看次数

在iOS 7中滚动到UITextView的底部不稳定

以下代码在iOS <7.0中可以正常工作.在iOS 7中,当UITextView正在更新时,滚动将变得不稳定且不稳定.我不确定这是否是iOS 7中的错误,或者我做错了什么.

TestController.h

//TODO: Add UITextView in storyboard and tie to textView outlet

#define MAX_TEXT_VIEW_CHARACTERS 1000
@interface TestController : UIViewController  {
    NSMutableString *_outputText;
    NSTimer *_outputTimer;
}

@property (strong, nonatomic) IBOutlet UITextView *textView;

@end
Run Code Online (Sandbox Code Playgroud)

TestController.m

@implementation TestController
@synthesize textView;

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    _outputText = [NSMutableString stringWithCapacity:MAX_TEXT_VIEW_CHARACTERS];
    _outputTimer =  [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(outputLine:) userInfo:nil repeats:YES];
}

-(void)outputLine:(NSTimer *) theTimer {
    static int i = 0;
    //Run this 100 times
    if (i > 99) {
        [_outputTimer invalidate];
        return;
    } …
Run Code Online (Sandbox Code Playgroud)

uiscrollview uitextview ios ios7

25
推荐指数
2
解决办法
2万
查看次数