gpt4 book ai didi

ios - 重用 UITableViewCell 时缺少 subview

转载 作者:行者123 更新时间:2023-11-28 19:01:24 25 4
gpt4 key购买 nike

我在 layoutSubviews 上有一个包含以下代码的自定义单元格:

// Separator Inset
UIImageView *line = [[UIImageView alloc] initWithFrame:CGRectMake(0, 60, 320, 0.5)];
line.backgroundColor = [UIColor blackColor];
[self addSubview:line];

它正确地添加了 subview ,问题是当我向下和向后滚动时 subview 消失了。

也许与重复使用细胞有关,但我不确定我遗漏了什么。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
static NSString *CellIdentifier = @"ExerciciosCell";
ExerciciosCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

if (!cell) {
cell = [[ExerciciosCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

更新:在 cellForRowAtIndexPath

NSLog(@"subviews: %d", cell.contentView.subviews.count);` 
NSLog(@"%@", cell.contentView.subviews);

结果:

"<UILabel: 0x15dca980; frame = (60 12; 248 21); text = 'Supino Reto Na Maquina'; clipsToBounds = YES; layer = <CALayer: 0x15dab2c0>>",
"<UITableViewLabel: 0x15dd1880; frame = (60 32; 248 18); text = 'Peso: 50 - 3x10 reps'; clipsToBounds = YES; layer = <CALayer: 0x15dc7410>>",
"<UIImageView: 0x15e91ff0; frame = (0 60; 320 0.5); userInteractionEnabled = NO; layer = <CALayer: 0x15ecaa80>>",
"<UIImageView: 0x15dcc730; frame = (5 5; 50 50); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x15db8100>>"

最佳答案

layoutSubviews 被调用了很多很多次。这不是添加 subview 的正确位置。较旧的 ImageView 正在被较新的 ImageView 覆盖。

添加 subview 的正确位置是在 init... 方法中。

关于ios - 重用 UITableViewCell 时缺少 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24961774/

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