Мне нужно изменить значок по умолчанию для перемещения ячеек в UITableView.
Этот:
Возможно ли это?
После отлаживания UITableViewCell можно использовать KVC в подклассе UITableViewCell для изменения его.
// key
static NSString * const kReorderControlImageKey = @"reorderControlImage";
// setting when cellForRow calling
UIImage *customImage;
[self setValue:customImage forKeyPath:kReorderControlImageKey];
// to prevent crash
- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
if ([key isEqualToString:kReorderControlImageKey]) return;
else [super setValue:value forUndefinedKey:key];
}
Я не мог заставить никакой другой ответ работать на меня, но я нашел решение.
ответ Grzegorz R. Kulesza почти работали на меня, но я должен был внести пару изменений.
Это работает с Swift 5 и iOS 13:
// Change default reorder icon in UITableViewCell
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let imageView = cell.subviews.first(where: { [110].description.contains("Reorder") })?.subviews.first(where: { [110] is UIImageView }) as? UIImageView
imageView?.image = UIImage(named: "your_custom_reorder_icon.png")
let size = cell.bounds.height * 0.6 // scaled for padding between cells
imageView?.frame.size.width = size
imageView?.frame.size.height = size
}