我有一个使用自定义UITableViewCell的UITableView。我的UITableVewCell里面有两个文本域,我在我的主ViewController中添加了一个标签,它包含了我自定义UITableViewCell的UITableView。
所以这是我tableView:cellForRowAIndexPath:
static NSString *CellIdentifier = @"Cell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomFCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSString *widthString = [currentFDictionary objectForKey:@"MM"];
if ((NSNull *) widthString != [NSNull null]) {
cell.widthTexField.text = widthString;
cell.widthTexField.tag = indexPath.row;
} else {
cell.widthTexField.text = @" ";
}
NSString *heightString = [currentFDictionary objectForKey:@"NM"];
if ((NSNull *) heightString != [NSNull null]) {
cell.heightTextField.text = heightString;
cell.heightTextField.tag = indexPath.row;
} else {
cell.heightTextField.text = @" ";
}
return cell;
我想知道如何使用此.tag
在UIKeyboard上方滚动UITableViewCell,现在将在视图中显示。
任何帮助都会非常感激。
答案 0 :(得分:1)
我能想到的一个简单方法是使用-scrollToRowAtIndexPath:atScrollPosition:animated:
在UITextField
个对象上设置委托。
cell.widthTexField.delegate = self;
//...
cell.heightTextField.delegate = self;
现在,以这种方式使用-textFieldShouldBeginEditing:
委托方法:
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
NSIndexPath *currentSelectedIndexPath = [self.tableView indexPathForSelectedRow];
[self.tableView scrollToRowAtIndexPath:currentSelectedIndexPath
atScrollPosition:UITableViewScrollPositionTop
animated:YES];
}
//NOTE: this way we don't really need to work with the textField tag per se
//(unless you are using it elsewhere as well)
//Instead, we work with the entire cell and scroll it to the desired position
这可能不完美,因为我没有在这里测试过,但这是一般的想法