#ios #swift #xcode #ios15
#iOS #быстрый #xcode #ios15
Вопрос:
Я использую управление переупорядочением ячеек tableview в своем приложении, и оно хорошо работает до iOS 14, но не работает на iOS 15. В iOS 15 цвет элемента управления переупорядочением не меняется.
Ниже приведен код, который я использовал. Итак, как я могу изменить цвет элемента управления переупорядочением в iOS 15.
private var myReorderImage : UIImage? = nil; override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { for subViewA in cell.subviews { if (subViewA.classForCoder.description() == "UITableViewCellReorderControl") { for subViewB in subViewA.subviews { if (subViewB.isKind(of: UIImageView.classForCoder())) { let imageView = subViewB as! UIImageView; if (myReorderImage == nil) { let myImage = imageView.image; myReorderImage = myImage?.withRenderingMode(UIImageRenderingMode.alwaysTemplate); } imageView.image = myReorderImage; imageView.tintColor = UIColor.red; break; } } break; } } }
Ответ №1:
В iOS 15 я попытался настроить значок элемента управления изменением порядка, но не смог этого сделать. Поэтому я просто удаляю объект UIImageView из элемента управления изменением порядка. И создайте мой собственный объект просмотра изображений программно и установите изображение в это изображение. И после этого добавьте этот просмотр изображений как addSubview в элемент управления изменением порядка. И это решило мою проблему.
Следуйте коду общего доступа, чтобы он помог другим, кто сталкивается с той же проблемой.
private var myReorderImage : UIImage? = nil; override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { for subViewA in cell.subviews { if (subViewA.classForCoder.description() == "UITableViewCellReorderControl") { for subViewB in subViewA.subviews { if (subViewB.isKind(of: UIImageView.classForCoder())) { subViewB.removeFromSuperview() let imageView = UIImageView() if (self.myReorderImage == nil) { let myImage = imageView.image myReorderImage = myImage?.withRenderingMode(.alwaysTemplate) } var frame = imageView.frame frame.origin.x = 3 frame.origin.y = 14 frame.size = CGSize(width: 21, height: 9) self.myReorderImage = UIImage(named:"YourImage") // set your image imageView.frame = frame imageView.image = self.myReorderImage subViewA.addSubview(imageView) // add imageView to reorder control break; } } break; } } }