gpt4 book ai didi

objective-c - 我可以在 UITableView 的 allowsMultipleSelectionDuringEditing 设置为 YES 时使用自定义复选标记吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:20 26 4
gpt4 key购买 nike

一图胜千言...

enter image description here

关于更多背景知识,我有一个 UITableView,它利用 iOS 5 的 allowsMultipleSelectionDuringEditing 设置为 YES。这会导致每当单元格处于编辑模式时,空的和填充的编辑控件都会显示在单元格的左侧。这种行为正是我想要的。我只想更改这些复选标记的外观。

我知道可以编写自定义选择逻辑并基本上推出我自己的版本(如 thisthis ),但这是我想避免的。该系统已经到位,我想尽可能多地重复使用它。

最佳答案

这是我最接近的一次。它简单而且有效,同时重用了几乎所有预烘焙系统。然而,这也是一个巨大的 hack,并且依赖于在一些运行时自省(introspection)之后利用未记录的 UITableViewCell View 层次结构。

简而言之,这只是隐藏了通常负责显示复选标记的 View ,允许我添加可以在其位置显示的自己的 View 。然后,当单元格的选择或编辑状态发生变化时,我可以操纵这个替代 View ...

要防止出现标准复选标记,所需要的只是自定义 -layoutSubviews 实现。根据文档,它在 -willTransitionToState:-setEditing:animated: 之后被调用,确保在 isSelected正在编辑 更改。

- (void)layoutSubviews
{
[super layoutSubviews];

// Find the offending view, and quietly bury it...
for (UIView* subview in [self subviews])
{
// As determined by NSLogging every subview's class, and guessing which was the one I wanted
if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"])
{
[subview setHidden:YES];
}
}

if ([self isEditing])
{
// Show the custom view however you want.
// The value of [self isSelected] will be useful...
}
else
{
// Hide the custom view.
}
}

我仍然欢迎一个更... kosher 的解决方案。

关于objective-c - 我可以在 UITableView 的 allowsMultipleSelectionDuringEditing 设置为 YES 时使用自定义复选标记吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11695753/

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