1

滚动标签重叠后

在滚动表格视图之前

我已将自定义标签添加到 tableview 。但是当我滚动它看起来像给定的图片。

我也在添加代码。`- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

if ([segue.identifier isEqualToString:@"DetailPlacePage"]) {
    NSIndexPath *indexPath = [self.placeTableViewController indexPathForSelectedRow];
    NomadPlaceDetailViewController *placedetailcontroller = segue.destinationViewController;
    placedetailcontroller.myDictionary = [self.placeArray objectAtIndex:indexPath.row];
}

} `

4

3 回答 3

0

这是因为您的单元格标识符尝试此代码。希望这可以帮助你。

- (UITableViewCell *) tableView:(UITableView *) tableView1 cellForRowAtIndexPath:(NSIndexPath *) indexPath 
{

static NSString *CellIdentifier = nil;

   UITableViewCell *cell = (UITableViewCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil)
    {        
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
   return cell;

}
于 2013-11-07T09:02:19.833 回答
0

当您使用 dequeueReusableCellWithIdentifier: 时,如果您在单元格中添加额外的子视图,最好也重用它的子视图。

你可以像下面这样编写你的 cellForRowAtIndexPath:

- (UITableViewCell *) tableView:(UITableView *) tableView1 cellForRowAtIndexPath:(NSIndexPath *) indexPath 
{

    static NSString *CellIdentifier = @"CellIdentifier";

    UITableViewCell *cell = (UITableViewCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    UITextField *myView;

    if (cell == nil)
    {        
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

        myView = [[UITextField alloc] init];  // Set frame as required
        myView.tag = indexPath.row;
        [cell.contentView addSubview:myView];
    }

    myView = [cell.contentView viewWithTag:indexPath.row];
    myView.text = @"YourText";
   return cell;

}

这里发生的情况是它只myView在 cell 为 时添加一次nil,之后它将重用先前添加myView到 set Text 的内容,因此myView不会多次添加,从而解决了问题。

于 2013-11-07T09:32:00.963 回答
-1

这是因为您在if(cell == nil)条件之外初始化和添加标签。因此,每次滚动表格视图时,都会执行添加标签和创建新标签的代码。所以只要把它们放在你的if(cell == nil)条件之内。只有数据显示部分应该放在外面if(cell == nil)

于 2013-11-07T05:26:00.143 回答