簡體   English   中英

如何在Swift中畫一個圓圈UIView

[英]How to make a circle UIView in Swift

以下代碼適用於 iPhone,但在 iPad 上,圓圈不是均勻的。

如何使視圖在兩個設備上看起來像一個圓圈?

let width:CGFloat = UIScreen.main.bounds.width*0.0533      
label.layer.masksToBounds = true
label.layer.cornerRadius = width/2

在此處輸入圖像描述

如果你想讓你的 UIView 顯示為一個圓圈,有幾種方法可以做到這一點。

  • 將其角半徑設置為寬度/高度的一半(最常見的方式)

如果您事先不知道視圖的高度/寬度。 您可以簡單地覆蓋它的超視圖類中的layoutSubviews()函數或視圖控制器中的func viewDidLayoutSubviews()函數,並直接在那里設置角半徑。

override func layoutSubviews() {
  super.layoutSubviews()
  label.layer.cornerRadius = label.frame.size.width/2
}

不要忘記將 UIView 圖層的maskToBounds屬性設置為 true。

  • 設置遮罩層

指定遮罩層的貝塞爾曲線路徑。 每次視圖更改其大小時,都必須更新圖層的框架。

  • 舍入圖像

如果您正在處理圖像,您還可以考慮在 UIImageView 中顯示圖像之前對圖像本身進行四舍五入 - 從性能角度來看,它可能比以前的選項更快。

要制作完整的圓形,您應該保持標簽的高度和寬度相同。 使用此代碼。

let width:CGFloat = UIScreen.main.bounds.width*0.0533  
label.frame = CGRect(0,0,width,width)    
label.layer.masksToBounds = true
label.layer.cornerRadius = width/2

發生這種情況的一個原因是,如果自動布局由於約束沖突而改變了標簽的大小。

檢查調試控制台以查看是否發生了這種情況,或者僅使用“調試視圖層次結構”來查看視圖的實際尺寸。 在此處輸入圖片說明

我發現要從 just.frame.size.height / 2 制作 uiview 圓圈,uiview 的寬度和高度應該相等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM