2

我有一个 UITextView,我在 UITextView.text 的末尾替换了一个单词,如下面的代码:

-(void)replaceTextViewWithWord:(NSString *)word {
    NSString *currentTextViewText = self.textView.text;

    currentTextViewText = [currentTextViewText stringByReplacingCharactersInRange:NSMakeRange([self.textView.text length] - [word length], [word length]) withString:word];

    self.textView.text = currentTextViewText;    
}

替换工作正常,但是当 textView 变长时它运行得非常缓慢而且非常缓慢。

还有其他更好的方法吗?

我尝试使用replaceRange:withText一周但仍然卡住。不知道如何用它来代替我的情况。

请指导!提前致谢!这是一项紧迫的任务。

4

2 回答 2

0

不,如果您使用 UITextView 没有更好的方法(不适用于 ios6 及更低版本)

在 ios7 上有 textkit

于 2014-01-24T13:02:14.240 回答
0

当您使用不可变字符串并且您正在创建一个非常长的字符串并将其分配给已经创建的 NSString 时。

而不是NSString使用NSMutableString一些开销将减少。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    FooBarCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
    if (cell == nil) {
        cell = [[EditCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kCellIdentifier];
        cell.mutableString = [NSMutableString string];
        cell.textView.text = cell.mutableString;
    }
    [cell.mutableString setString:@"text to show"];
    return cell;
}
于 2013-03-21T06:22:54.317 回答