Я пытаюсь скруглить углы своего UIImageView в tableViewCells, однако по какой-то причине они обрезаны. Я пробовал это:
cell.characterThumbnail.layer.masksToBounds = true
cell.characterThumbnail.layer.cornerRadius = 15
и вот результат, который я получаю:

Если я использую отладочную программу 3D-просмотра, я получаю кадр больше, чем я установил (я хочу 84 * 84, но он показывает 84 * 110). Здесь показано:
Почему бывают разные размеры? А почему скругленные углы обрезаны? Я должен указать, что изображение в UIImageView загружается с URL-адреса для каждого эскиза.
Любая помощь по этому поводу приветствуется. Меня это беспокоит целую неделю, смеется.
P.S. Я забыл упомянуть, что я прочитал почти все вопросы о «закругленных углах» здесь, на SO, и в других местах в Интернете, но не упоминал об обрезанных углах. Кроме того, я подумал об округлении фактического изображения перед его отображением в UIImageView, но это делает прокрутку tableView рывками.
Обновлено: весь проект на https://github.com/Aecasorg/WoWilvlChecker
установить клетка. персонаж. clipsToBound = true
Попробуйте реализовать это поведение в примере проекта (со связанными изображениями). Думаю, у вас здесь комплекс ошибок.
@PrashantTukadiya Ага, пробовал раньше. Нет разницы.
Вы можете разместить пример проекта на GitHub, и кто-нибудь сможет его посмотреть.
@AndrewRomanov Вот весь проект: [github.com/Aecasorg/WoWilvlChecker] Я также добавил ссылку на вышеупомянутый вопрос.
Клипы для привязки должны работать. Вы добавляете тень или границу?
@PrashantTukadiya Ни границ, ни теней. Я хочу, чтобы все было просто. Закругленные углы есть, но они «подрезаны».
Если эскизы имеют размер 84 x 84, но ваш кадр imageView имеет размер 84 x 110, вам необходимо установить aspectFill, а не aspectFit. Это полностью заполнит рамку. См. Ответ ниже.
не могу построить ваш пример "SwipeCellKit" недоступен. Кроме того, прямая ссылка неверна.
@AndrewRomanov сейчас разбираю и обновляю. Дай мне пару минут ...
@AndrewRomanov Хорошо, сейчас я загружаю все обновленные модули в репозиторий GitHub. Пройдет еще 20 минут до завершения (медленный аплинк).
@AndrewRomanov Ок, все обновилось.
Проект github недоступен.
Извините, правильная ссылка должна быть: github.com/Aecasorg/WoWilvlChecker





Проблема в том, что круглый угол рисуется на 84X110, а не на 84X84. Вот почему это выглядит странно.
Пожалуйста, вызовите sizeToFit() (это изменяет размер и перемещает представление получателя, так что оно просто включает его подвиды.).
cell.characterThumbnail.sizeToFit()
cell.characterThumbnail.clipsToBound = true
прямо перед
cell.characterThumbnail.layer.masksToBounds = true
cell.characterThumbnail.layer.cornerRadius = 15
Однако, если вы хотите сохранить фиксированный просмотр эскизов 84X84 и изменить размер изображения, вам необходимо установить aspectFill.
И в раскадровке (WoWilvlChecker) исправьте ширину и высоту вида на 84X84
Также я думаю, что значение cornerRadius не обязательно должно быть 15. Значения вроде 3-5 должно быть достаточно.
Я просто попытался поставить cell.characterThumbnail.sizeToFit() перед указанным выше, но, к сожалению, без разницы. Спасибо хоть.
Пожалуйста, также добавьте ячейку. персонаж. clipsToBound = true. Надеюсь, это поможет.
Когда вы вызываете sizeToFit (). Увеличивается ли размер изображения до 84X84 (равный размеру изображения) ИЛИ он остается 84X110? Проблема, которую вы видите, заключается в том, что скругленный угол получается нарисованным, но на 84X110, а не на 84X84. Вот почему это выглядит странно
Они остаются 84х110. Весь проект здесь: [github.com/Aecasorg/WoWilvlChecker]
84X110 - актуальная проблема. Я посмотрю на ссылку github
Позвольте нам продолжить обсуждение в чате.
Я проверил ваше репо.
Удалите ограничение centerY, похоже, что centerY вызывает эту проблему "растянутой высоты".
Если вы хотите применить размер imageView,
затем установите ширину, высоту (centerX, CenterY) или (вертикальный, горизонтальный)
Большой! Мы куда-то идем! Теперь у меня закругленные углы, но они смещены вниз. Просто нужно решить, как центрировать UIImageView в ячейке. Не совсем уверен, как применить размер согласно вашему предложению.
Вы можете делать по-разному, я бы сделал так. 1. Сохраните centerY в leftLabel (извините за путаницу) 2. Удалите bottom to leftLabel 3. Удалите imageView, ведущий к leftLabel + offset 4. Сделайте centerX равным leftLabel + offset + (imageWidth / 2)
Более конкретно, у вас была проблема «растянутой высоты» из-за двух ограничений: centerY и метки снизу налево. С помощью этих двух комбинаций создатель ограничений вычисляет верхнюю привязку imageView, которая равна верхней привязке leftLabel, делая ту же высоту с leftLabel.
Спасибо! Я посмотрю на это, как только вернусь сегодня вечером. Я дам вам знать, как это происходит.
Да, это было из-за ограничений. Все, что мне нужно, - это избавиться от ведущего пространства в: Superview и Bottom View в: Superview и добавить центр выравнивания Y в: Superview, и это отсортировано (еще раз спасибо @Andrew Romanov за запрос на перенос).
Вы должны установить clipsToBounds в true и задать ему желаемый радиус.
cell.image.contentMode = .ScaleAspectFill
cell.image.layer.cornerRadius = 10
cell.image.clipsToBounds = true
//Use this to add border
cell.image.layer.borderWidth = 3
cell.image.layer.borderColor = UIColor.whiteColor().CGColor
У проекта есть проблемы с ограничениями макета и режимом содержимого в imageView.
Просто добавьте ограничение высоты для imageView и измените режим содержимого на Aspect fill.
Также рекомендую использовать меньший радиус закругления, например 5.0. Вы можете проверить мои изменения в запросе на перенос.
Спасибо за пул-реквест! Очень признателен!
Все из-за ограничений. Все, что мне было нужно, это избавиться от ограничений «Ведущее пространство до: Супервизор» и «Вид снизу до: Супервизор», которые я установил, и добавить «Выровнять центр Y к: Супервизор», и это отсортировало его. Спасибо всем за отзывы и предложения!
imageview clipsToBound?