在UIImageView中裁剪的圆角

时间:2018-09-20 07:46:29

标签: ios swift xcode

我试图在tableViewCells中的UIImageView上弄圆一些,但是由于某些原因,它们被裁剪了。我已经尝试过:

cell.characterThumbnail.layer.masksToBounds = true
cell.characterThumbnail.layer.cornerRadius = 15

这是我得到的结果:

![Screenshot showing clipped rounded corners of UIImageView

如果我使用调试3D查看器,则得到的帧比我设置的要大(我想要84 * 84,但显示为84 * 110)。此处显示:

Screenshot showing debug frame at 84 * 110

为什么尺寸不同?为何剪掉圆角?我必须指出,UIImageView中的图像是从每个缩略图的URL下载的。

在此问题上的任何帮助都将受到赞赏。它困扰了我一周。

P.S。我忘了提到我在SO和互联网上的其他地方几乎已经阅读了每个“圆角”问题,但没有提到弯角。另外,我曾考虑过在将实际图像显示在UIImageView中之前先对其进行四舍五入,但这会使tableView滚动生涩。

编辑:位于https://github.com/Aecasorg/WoWilvlChecker的整个项目

6 个答案:

答案 0 :(得分:1)

看到的问题是在84X110而非84X84上绘制了圆角。这就是为什么它看起来很奇怪的原因。

请致电 $(document).ready(function(){ $('.rc-anchor-normal .rc-anchor-pt').css('position':'absolute').css('top':'60px').css('right':'35px'); $('.rc-anchor-logo-img-portrait').css('position':'absolute').css('right':'50px'); $('.rc-anchor-logo-text').css('position':'absolute').css('right':'50px').css('top':'45px'); }); (这将调整接收者视图的大小并移动它,以便仅包围其子视图。)

SELECT `cc`.`customer_id`, `cc`.`customer_name`, COUNT(*) AS Progress, (SELECT COUNT(*) AS Notifications 
FROM `crm_customers` AS `cc` 
INNER JOIN `crm_notifications` AS `cn` ON `cc`.`customer_id` = `cn`.`notification_customer` 
WHERE `cc`.`customer_id` = 1 AND `cc`.`customer_status` = 1 
GROUP BY `cc`.`customer_id`) AS Notifications 
FROM `crm_customers` AS `cc` 
INNER JOIN `crm_progress` AS `cp` ON `cc`.`customer_id` = `cp`.`progress_customer` 
WHERE `cc`.`customer_id` = 1 AND `cc`.`customer_status` = 1 
GROUP BY `cc`.`customer_id`

就在

之前
sizeToFit()

但是,如果您希望将缩略图固定为84X84并调整图像大小,则需要设置cell.characterThumbnail.sizeToFit() cell.characterThumbnail.clipsToBound = true 。 在(WoWilvlChecker)的情节提要中,将视图的宽度和高度固定为84X84

我还认为CornerRadius不必为15。值3-5应该足够。

答案 1 :(得分:1)

我怀疑您的图片视图设置为'aspectFit',而不是AspectFill:

enter image description here

答案 2 :(得分:1)

我检查了您的仓库。

删除centerY约束,似乎centerY导致了此“拉伸高度”问题。

如果要应用imageView的大小,

然后设置宽度,高度,(centerX,CenterY)或(垂直一,水平一)

答案 3 :(得分:1)

您必须将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

答案 4 :(得分:1)

项目在imageView中存在布局约束和内容模式方面的问题。
只需为imageView添加高度限制,然后将内容模式更改为纵横比填充。
我也建议使用较小的拐角半径,例如5.0。您可以在请求请求中检查我的更改。

答案 5 :(得分:0)

这都是由于限制。我需要做的就是摆脱我已经设置的“ Leading space to:Superview”和“ Bottom View to:Superview”约束,并添加“ Align Center Y to:Superview”并对它进行排序。感谢大家的回应和建议!