使视图四舍五入
要制作圆形 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 中设置相应的属性,也可以实现圆形视图效果。
由于 layer
属性未在 Storyboard 中公开,因此你必须通过用户定义的运行时属性部分修改 cornerRadius
属性。
快速扩展
只要它具有相同的宽度和高度,你就可以使用这个方便的扩展来应用圆角视图。
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()