UIImageView.layer.cornerRadius的问题是在不同的像素密度ios上创建圆角图像

nwa*_*les 9 frame cornerradius ios iphone-6

我只是想创造一个完美的圆形图像.这是我的快速代码:

myImage.layer.cornerRadius = myImage.frame.size.width/2
myImage.layer.masksToBounds = true
Run Code Online (Sandbox Code Playgroud)

这适用于4s,但在5s上不是很圆,并且在iphone 6上显示为圆角矩形.

我假设这与frame.size.width有关,以像素为单位返回值而不是像这样的东西,但我一直无法解决这个问题.

Lyn*_*ott 23

如果您正在使用该代码viewDidLoad,请尝试将其移至viewDidLayoutSubviews.

我猜这是一个自动布局问题 - 虽然你已经适当地使用了角半径属性并且实际上使图像框架呈圆形,但在自动布局之后,角半径保持不变,但是图像拉伸以便它是不再是循环的.

  • @Dashrath在设置图层属性之前设置layoutIfNeeded**. (2认同)