Изменить значок по умолчанию для перемещения ячеек в UITableView

Мне нужно изменить значок по умолчанию для перемещения ячеек в UITableView.

Этот:

enter image description here

Возможно ли это?

35
задан Baby Groot 21 November 2013 в 06:30
поделиться

2 ответа

После отлаживания 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];
}
1
ответ дан 27 November 2019 в 06:34
поделиться

Я не мог заставить никакой другой ответ работать на меня, но я нашел решение.

ответ 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
}
0
ответ дан 27 November 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: