Я пытаюсь реализовать простую функцию отчета / блока для моего приложения через новое контекстное меню iOS 13. Кажется, он работает нормально, однако я сталкиваюсь с проблемами с его внешним видом, которые мне не удалось решить в данный момент.
- Когда я долго нажимаю
UICollectionViewCell
, он выделяет черный в темноте режим и это выглядит ужасно, так как у меня не весь черный цвет фона. Как я могу изменить его на прозрачный или желаемый цвет? - У меня есть пузырь, который отображает сообщение пользователя, и я хотел бы использовать контекстное меню для пузырьков. Проблема в том, что, когда контекстное меню по умолчанию просматривает мою ячейку, оно обрезает нижнюю часть пузыря и выглядит как часть всего сообщения. Я пытался играть с высотой ячейки и некоторыми другими параметрами - ничего не получалось.
Как я могу исправить проблемы? Пожалуйста, помогите.
**** Мой код: ****
@available(iOS 13.0, *)
override func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
let configuration = UIContextMenuConfiguration(identifier: nil, previewProvider: nil){ action in
let cell = collectionView.cellForItem(at: IndexPath.init(row: indexPath.row, section: 0)) as? ChatCell
cell?.tintColor = .clear
self.view.backgroundColor = .clear
let messageText = cell?.textView.text
let userNameZdes = cell?.nameView.text
let report = UIAction(title: "Report", image: UIImage(systemName: "exclamationmark.bubble"), identifier: UIAction.Identifier(rawValue: "report")) {_ in
print("report clicked..")
if (cell?.textView.text.count)! > 2 {
print("the text of the message = \(messageText!) & the user is \(userNameZdes!)")
} else {
print("the user has attached a bad pic")
}
}
let block = UIAction(title: "Block user", image: UIImage(systemName: "person.crop.circle.badge.xmark"), identifier: UIAction.Identifier(rawValue: "block"), attributes: .destructive) {_ in
print("block clicked..")
}
return UIMenu(title: "Message Actions", image: nil, identifier: nil, children: [report, block])
}
return configuration
}