gpt4 book ai didi

ios - 每次 utableview 重新加载时,单元格按钮都会不断创建新的

转载 作者:行者123 更新时间:2023-11-29 01:37:02 25 4
gpt4 key购买 nike

应用程序正在搜索同一范围内的信标。我在 UTTableView 中显示所有信标。我现在遇到的问题是,每次 uitableview 重新加载时都会创建一个新按钮。这使得应用程序非常慢并且占用大量 CPU 资源。

   - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Tag"];

AXABeacon *beacon = [[AXABeacon alloc] init];
beacon = [self.bleDevices objectAtIndex:indexPath.row];

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.tag = indexPath.row;

//set the position of the button
//NSLog(@"innan if %@", [self.setButton objectAtIndex:indexPath.row]);
NSLog(@"Skapar en ny ");
//NSLog(@"Inne i if %@", [self.setButton objectAtIndex:indexPath.row]);
button.frame = CGRectMake(cell.frame.origin.x + 190, cell.frame.origin.y + 7, 100, 30);
[button setTitle:@"Radera" forState:UIControlStateNormal];
[button addTarget:self action:@selector(deleteCell:) forControlEvents:UIControlEventTouchUpInside];
button.backgroundColor= [UIColor clearColor];
[cell.contentView addSubview:button];
[self.setButton addObject:beacon];
NSLog(@"Efter if %@", [self.setButton objectAtIndex:indexPath.row]);
//Här är det slut på sätta knappar

//Definerar veriabler
UILabel *titleLabel = (UILabel *)[cell viewWithTag:1];
UILabel *uuidLabel = (UILabel *)[cell viewWithTag:2];
UILabel *rssiLabel = (UILabel *)[cell viewWithTag:3];
UILabel *majorLabel = (UILabel *)[cell viewWithTag:4];
UILabel *minorLabel = (UILabel *)[cell viewWithTag:5];

//Ger variabler ett värde
titleLabel.text = [NSString stringWithFormat:@"%@", beacon.name];
uuidLabel.text = [NSString stringWithFormat:@"%@", beacon.uuidString];
rssiLabel.text = [NSString stringWithFormat:@"RSSI: %@", [beacon.rssi stringValue]];
minorLabel.text = [NSString stringWithFormat:@"Minor: %@", beacon.minor];
majorLabel.text = [NSString stringWithFormat:@"Major: %@", beacon.major];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

//Anpassar text till storlek av box
uuidLabel.adjustsFontSizeToFitWidth = YES;
titleLabel.adjustsFontSizeToFitWidth = YES;

return cell;
}

最佳答案

每次将单元格出队时,您都会添加一个新按钮。解决此问题的两种方法。

  1. 创建一个 UITableViewCell 子类,在其 init 方法中创建并添加按钮。

  2. 更糟糕的解决方案:使用标签引用按钮。看起来您正在尝试使用该按钮来引用它所在的行,因此无论如何您都不能这样做。您需要使用解决方案 #1

关于ios - 每次 utableview 重新加载时,单元格按钮都会不断创建新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32851535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com