从iOS中的UITextView中删除文本

时间:2015-03-18 06:46:56

标签: ios uitextview

我希望在用户选择此按钮后,使用一些文本和一个按钮创建一个UITextView按钮,在修复时间后逐字地隐藏文字UITextView。我该怎么做?enter image description here

after some words remove one by one

在第一张图片中,所有单词都存在,但是在第二个屏幕中,在一段时间之后逐字逐句删除,我正在使用计时器和调用方法

 firststring = myArray[countNew];
 NSRange range=[self.textView.text rangeOfString:firststring];
  [stringWithRTFAttributes addAttributes:@{NSForegroundColorAttributeName: [UIColor clearColor]} range:range];
  [self.textView setAttributedText:stringWithRTFAttributes];
  countNew++;
 if(countNew>=count)
 {
    [timer invalidate];
    NSLog(@"Timer Stops");
 }

其中count是存储总字数的数组,countNew是整数变量。

2 个答案:

答案 0 :(得分:2)

您可以使用NSMutableAttributedString并将特定字词的文字颜色更改为clearColorbackgroundColorNSTimer是一个很好的方法。

举个例子:

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"Dummy String" attributes:@{NSForegroundColorAttributeName: [UIColor blackColor]}];
[string addAttributes:@{NSForegroundColorAttributeName: [UIColor clearColor]} range:{range of substring}];

对于多次出现的子字符串,您可以采用这种方法:

NSString *string = @"Dummy String";
NSArray *words = [string componentsSeparatedByString:@" "];
...  //within your scheduled/for loop:
static NSInteger location = 0;
static NSInteger index = 0;
NSRange range = NSMakeRange(location, [[words objectAtIndex:index] length]);
location += [[words objectAtIndex:index] length];
index++;

答案 1 :(得分:0)

我已经解决了这个问题,用一个定时器调用go方法,这是我的代码

-(void)go
{
firststring = myArray[countNew];
 NSInteger location = location1;
 NSInteger index = index1;
NSRange range = NSMakeRange(location, [[myArray objectAtIndex:countNew] length]);
NSLog(@"my range is %@  firstString %@", NSStringFromRange(range) ,firststring);
[stringWithRTFAttributes addAttribute:NSForegroundColorAttributeName value:[UIColor clearColor] range:range];
[_textView setAttributedText:stringWithRTFAttributes];
[_textView setFont:[UIFont boldSystemFontOfSize:20]];
location1 = [[myArray objectAtIndex:countNew] length] +location +1;
index1 = index++;
countNew++;
if(countNew>=[myArray count])
 {
    [timer invalidate];

 }

}

这里的location1,index1是两个长整型数据。