将文本滚动到屏幕后,将文本保存在UITextView中

时间:2011-06-05 19:28:37

标签: ios uitableview uitextview

我的表只有2个部分。我在表格的第二部分有一个UITextView作为子视图。以及第一部分中可能的引用列表。

我遇到一个问题,一旦用户选择了一个特定的引用,就会像这样“粘贴”到UITextView中:

replyTextView.text = [NSString stringWithFormat:@"@%@ UserName writes... \n[\"%@\"]", replyPostCode,[separatedString objectAtIndex:indexPath.row]];

或在textview中滚动文本视图后将文本输入到textview中,这样它就会从屏幕上清除掉。我想这是因为我不断从桌子上发布它..

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
NSString *replyCellIdentifier = @"replyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    if ([indexPath section] == 0) {
        cell = [self CreateMultilinesCell:CellIdentifier];      
    }
    else if ([indexPath section] == 1) {
        //NSLog(@"TextField");
        cell = [self CreateMultilinesCell:replyCellIdentifier];     
        if ([indexPath row] == 0) {
            replyTextView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 300, 150)];
            //replyTextView.adjustsFontSizeToFitWidth = YES;
            replyTextView.textColor = [UIColor blackColor];
            replyTextView.keyboardType = UIKeyboardTypeASCIICapable;
            replyTextView.returnKeyType = UIReturnKeyDefault;
            replyTextView.backgroundColor = [UIColor whiteColor];
            replyTextView.autocorrectionType = UITextAutocorrectionTypeNo; 
            replyTextView.autocapitalizationType = UITextAutocapitalizationTypeNone;
            replyTextView.textAlignment = UITextAlignmentLeft;
            replyTextView.tag = 0;

            replyTextView.editable = YES;
            replyTextView.delegate = self;
            replyTextView.scrollEnabled = YES;

            //[replyTextView becomeFirstResponder];

            //replyTextView.clearButtonMode = UITextFieldViewModeNever;
            //[replyTextView setEnabled: YES];

            [cell.contentView addSubview:replyTextView];

            [replyTextView release];
            //cell.detailTextLabel.text = @"";
        }           
    }
}
//NSLog(@"%d", [indexPath section]);
if ([indexPath section] == 0) {
    cell.detailTextLabel.text = [separatedString objectAtIndex:indexPath.row];

}
return cell;
}

我只是想知道当用户将uitextview从屏幕滚动并再次返回时,将文本保留在我的UITextView中的最佳方法是什么?

更新

- (UITableViewCell*) CreateMultilinesCell :(NSString*)cellIdentifier
{

 //NSLog(@"Entering CreateMultilinesCell");
UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
                                                reuseIdentifier:cellIdentifier] autorelease];

cell.detailTextLabel.numberOfLines = 0;
cell.detailTextLabel.font = [self SubFont];
cell.detailTextLabel.textColor = [UIColor colorWithRed:10.0/255 green:10.0/255 blue:33.0/255 alpha:1.0];
[cell setBackgroundColor:[UIColor clearColor]];//]colorWithRed:.98 green:.98 blue:.99 alpha:1.0]];
[self.tableView setBackgroundColor:[UIColor clearColor]];//colorWithRed:.94 green:.96 blue:.99 alpha:1.0]];
                                                         //NSLog(@"Exiting CreateMultilinesCell");
return cell;
}

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是为两种类型的单元格使用不同的单元格标识符。

编辑:我看到你 使用了两种不同的类型,但你没有在dequeue电话中考虑到这一点。