【问题标题】:iOS15, link between text is disappear every time when I click on another list’s textiOS15,每次单击另一个列表的文本时,文本之间的链接都会消失
【发布时间】:2021-12-01 03:31:00
【问题描述】:

我在升级 iOS 15 的一些代码时遇到了一个奇怪的 iOS 应用问题

此问题仅发生在列表中的一个文本行“设置”

这是我正在使用的代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    FLTAccountTVCell *cell = [tableView dequeueReusableCellWithIdentifier:kFLTAccountTVCellReuseId];

    if (!cell) {
        cell = [[FLTAccountTVCell alloc] initWithReuseIdentifier:kFLTAccountTVCellReuseId];
        cell.textLabel.font = [FLTStylesheet regularFontWithSize:kFontSizeMedium];
    }

    cell.textLabel.text = [self titleForCellAtIndexPath:indexPath];
    return cell;
}

FLTAccountTVCell 是 UITableViewCell 的子类

除了一个“设置”文本在我单击它的任何列表时一直消失之外,一切似乎都很好。 我已经在 ios14 及更低版本上对其进行了测试,除了 ios15 和缺少“设置”之外,它似乎都很好

请看下面的截图 Gif

【问题讨论】:

  • 我怀疑线条的“选定”颜色是白色,所以它不是“消失”,它只是“白色”。您可以使用模拟器上的 View Hierarchy Debug 确认这一点。
  • 我对此进行了仔细检查,“选定”颜色没有白色文本,因为我在这个 IOS 论坛developer.apple.com/forums/thread/…987654322@上发现了类似的问题
  • 您是否尝试为出列单元格设置单元格标签文本字体?
  • 这显然是一个索引问题。当你点击 row2 并得到 在 row1 上的错误行为 但 row0 和 row3 不受影响,甚至 row2 都没有出现问题,那么在动作发生后会有一些索引不是。将 NSLogs 放在操作中并打印它的行号..

标签: ios objective-c xcode ios15


【解决方案1】:

我们将此代码重用于已分配的相同 UI 元素。

在我们的例子中,选项列表是相同的 UI,因此为了提高性能,我们使用这种编码实践来不为相同的 UI 元素分配更多内存。

但不知何故,这种可重用的做法在 IOS 15 上效果不佳,放弃了可重用 UI 元素的想法并为每个 UI 列表元素分配空闲内存,它奏效了

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    FLTAccountTVCell *cell = [tableView dequeueReusableCellWithIdentifier:kFLTAccountTVCellReuseId];

    if (!cell) {
        cell = [[FLTAccountTVCell alloc] initWithReuseIdentifier:kFLTAccountTVCellReuseId];
        cell.textLabel.font = [FLTStylesheet regularFontWithSize:kFontSizeMedium];
    }

    cell.textLabel.text = [self titleForCellAtIndexPath:indexPath];
    return cell;
}
FLTAccountTVCell is subclass of UITableViewCell

这不是好的编码习惯,但没关系。 UI 元素列表已修复。当列表像搜索结果一样是动态的时,这种可重用的编码实践对许多列表都很有用。

帐户设置选项已修复且不需要可重复使用的元素。我相信这是某种 ios 15 问题,在未来的版本中会修复。可能像在 ios 15.1 中一样?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    相关资源
    最近更新 更多