为什么向 UIImage 添加与中心对齐的约束会抛出角半径设置?
Why does adding an align with centre constraint to a UIImage throw out the radius of corners setting?
我正在尝试将方形图像变成圆形。我正在使用这段代码来做到这一点:
profilePicture2.layer.cornerRadius = profilePicture2.frame.size.height/2
profilePicture2.clipsToBounds = true
它工作得很好,直到我尝试通过添加 'Align centre X to superview' 约束将图像居中放置在容器视图中。当我添加这个约束时,我只是得到非常圆的角而不是圆。
其实好像是转角半径值的一半。因此,如果图像的高度为 100,并且拐角半径应设置为 50,则看起来半径值设置为 25。
图像中没有添加其他约束。
这是怎么回事?
您在调整图像大小之前调用此代码 (profilePicture2.layer.cornerRadius = profilePicture2.frame.size.height/2
)。您需要在自动布局完成后执行此操作。问题是开始的图像是(例如)100 点宽,而您将角半径设置为 50 点。之后,自动布局将图像大小调整为(同样,示例)300 点,但您的角半径保持 50 点。你只需要在自动布局完成后更新它。
或者,如果您不想拥有那么大的图像,请确保对宽度和高度施加限制,并将其置于父视图的中心。
我正在尝试将方形图像变成圆形。我正在使用这段代码来做到这一点:
profilePicture2.layer.cornerRadius = profilePicture2.frame.size.height/2
profilePicture2.clipsToBounds = true
它工作得很好,直到我尝试通过添加 'Align centre X to superview' 约束将图像居中放置在容器视图中。当我添加这个约束时,我只是得到非常圆的角而不是圆。
其实好像是转角半径值的一半。因此,如果图像的高度为 100,并且拐角半径应设置为 50,则看起来半径值设置为 25。
图像中没有添加其他约束。
这是怎么回事?
您在调整图像大小之前调用此代码 (profilePicture2.layer.cornerRadius = profilePicture2.frame.size.height/2
)。您需要在自动布局完成后执行此操作。问题是开始的图像是(例如)100 点宽,而您将角半径设置为 50 点。之后,自动布局将图像大小调整为(同样,示例)300 点,但您的角半径保持 50 点。你只需要在自动布局完成后更新它。
或者,如果您不想拥有那么大的图像,请确保对宽度和高度施加限制,并将其置于父视图的中心。