У меня есть панель поиска, подключенная к моему UITableView
.
Вот мой код:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = SongPicker.dequeueReusableCell(withIdentifier: "cell")!
// Image
cell.imageView?.image = songHandler.songItems[indexPath.row].songImage?.cropToBounds()
cell.imageView?.layer.cornerRadius = cell.imageView!.frame.width / 2
cell.imageView?.layer.masksToBounds = true
cell.imageView?.layer.borderWidth = 3
cell.imageView?.layer.borderColor = UIColor.lightGray.cgColor
// Song name
cell.textLabel?.text = songHandler.songItems[indexPath.row].songName
// Artist name
cell.detailTextLabel?.text = songHandler.songItems[indexPath.row].songArtist
return cell
}
(SongPicker
мой стол)
Распечатав результат cell.imageView?.layer
, я вижу, что при первой загрузке изображений у них не установлено свойство cornerRadius
в экземпляре. После правильной перезагрузки свойство устанавливается.
Однако, когда ячейки выходят из поля зрения или обновляются посредством получения новой информации (.reloadData()
ничего не делает), изображения в ячейках имеют круглую форму.
Есть еще один вопрос по этому поводу, но все повторяют, что вам нужно установить свойство cornerRadius
и masksToBounds
. Это никоим образом не поможет решить мою проблему, поскольку эти свойства четко установлены.
Я попытался создать расширение для UITableViewCell
с помощью кода слоя изображения, но оно дает точно такие же результаты.
Почему мои изображения начинаются с квадрата и как я могу это легко исправить?
![enter image description here](https://i.stack.imgur.com/JCQxg.png)
Если у вас есть какие-либо вопросы, пожалуйста, спросите