大家好,我正在尝试添加带有与 indexPath.row 相关的标签的自定义按钮。如果我不将新行插入到 tableview 中,我可以正确查看标签值。但是,当我插入新行时,如果插入的行不在 0 到 9 之间(iphone 5 可以显示),我的新行标签值不正确。在 iphone 上,我需要向下滚动才能看到。
但是,使用相同的代码,我可以在 ipad 上正确获取我的标签值。我不需要向下滚动 ipad 上的表格视图来查看我的所有行。我想知道它为什么会发生以及如何解决。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"dialoguesTableCell";
dialoguesCell *cell = [tableViewdequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[dialoguesCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
UIButton *yourButton = [UIButton buttonWithType:UIButtonTypeCustom];
[yourButton setImage:[UIImage imageNamed:@"1StarBlank.png"] forState:UIControlStateNormal];
[yourButton setTitle:@"Button" forState:UIControlStateNormal];
[yourButton addTarget:self action:@selector(buttonSelected:) forControlEvents:UIControlEventTouchUpInside];
yourButton.tag=indexPath.row;
yourButton.frame = CGRectMake(5, 10, 40, 25);
[cell addSubview:yourButton];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSIndexPath *indexPathstoinsert = [NSIndexPath indexPathForRow:indexPath.row+1 inSection:section];
NSArray *indexPathsToInsertArray = [NSArray arrayWithObject:indexPathstoinsert];
[[self mainTableView] insertRowsAtIndexPaths:indexPathsToInsertArray withRowAnimation:UITableViewRowAnimationRight];
}