我希望標簽的圓形邊緣更小。
我設法使標簽變圓,但是當我想讓圓圈變小時,我做不到。

這是我的代碼:
dayLabel.backgroundColor = .orange
dayLabel.layer.cornerRadius = dayLabel.bounds.width / 2
dayLabel.layer.masksToBounds = true
uj5u.com熱心網友回復:
您在標簽上繪制圓圈的方式是更改標簽圖層的背景顏色和圓角半徑。圓圈的大小將始終是視圖的大小。
您應該將 AutoLayout 約束添加到視圖以將其高度和寬度設定為所需的值(實際上,我會創建一個將寬度設定為給定值的約束,然后創建第二個將高度設定為等于寬度的約束,所以你只需要指定一個值并且總是得到一個正方形的邊界矩形和一個圓形而不是一個橢圓形。)
完成此操作后,只需使用較小的寬度值即可使標簽的背景圓圈更小。
請注意,當標簽的布局發生更改時,您將需要更新圖層的角半徑,否則可能會使用錯誤的cornerRadius 值。
您還可以將標簽的背景設定為透明,并在視圖的層下添加一個新的 CAShapeLayer,其大小小于視圖,但是如果視圖的大小發生變化,您將需要自定義代碼來更新背景層的大小。
uj5u.com熱心網友回復:
您可以更改標簽的邊界,這將減小背景圓圈的大小:
dayLabel.bounds = CGRect(x: dayLabel.bounds.minX, y: dayLabel.bounds.minY, width: 20, height: 20) //change these values to match your needs
dayLabel.textAlignment.center //to make sure the text stays centered
或者,如果您在情節提要中創建 UILabel,請調整寬度和高度約束,保持字體大小相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/454093.html
下一篇:視圖中的Swift更新結構
