使檢視四捨五入

要製作圓形 UIView,請為檢視的 layer 指定 cornerRadius

這也適用於任何繼承自 UIView 的類,例如 UIImageView

程式設計

SWIFT 程式碼

someImageView.layoutIfNeeded()
someImageView.clipsToBounds = true
someImageView.layer.cornerRadius = 10

Objective-C 程式碼

[someImageView layoutIfNeeded];
someImageView.clipsToBounds = YES;
someImageView.layer.cornerRadius = 10;

//Swift code
topImageView.layoutIfNeeded()
bottomImageView.layoutIfNeeded()
topImageView.clipsToBounds = true
topImageView.layer.cornerRadius = 10
bottomImageView.clipsToBounds = true
bottomImageView.layer.cornerRadius = bottomImageView.frame.width / 2

//Objective-C code
[topImageView layoutIfNeeded]
[bottomImageView layoutIfNeeded];
topImageView.clipsToBounds = YES;
topImageView.layer.cornerRadius = 10;
bottomImageView.clipsToBounds = YES;
bottomImageView.cornerRadius = CGRectGetWidth(bottomImageView.frame) / 2;

結果如下,使用指定的圓角半徑顯示圓角檢視效果:

例

注意

為此,你需要包含 QuartzCore 框架。

 #import <QuartzCore/QuartzCore.h>

故事板配置

通過在 Storyboard 中設定相應的屬性,也可以實現圓形檢視效果。

StackOverflow 文件

由於 layer 屬性未在 Storyboard 中公開,因此你必須通過使用者定義的執行時屬性部分修改 cornerRadius 屬性。

StackOverflow 文件

快速擴充套件

只要它具有相同的寬度和高度,你就可以使用這個方便的擴充套件來應用圓角檢視。

extension UIView {
    @discardableResult
    public func setAsCircle() -> Self {
        self.clipsToBounds = true
        let frameSize = self.frame.size
        self.layer.cornerRadius = min(frameSize.width, frameSize.height) / 2.0
        return self
    }
}

要使用它:

yourView.setAsCircle()