如何在Swift iOS Playground上创建一个带有圆角的UIImageView?
其内部需要填充颜色。
如何在Swift iOS Playground上创建一个带有圆角的UIImageView?
其内部需要填充颜色。
let imageView = UIImageView(frame: CGRectMake(0, 0, 100, 100))
imageView.backgroundColor = UIColor.redColor()
imageView.layer.cornerRadius = 8.0
imageView.clipsToBounds = true
结果:
对于Swift中的圆形图片框架,对我有效的方法是:
self.profileImageView.image = UIImage(named:"profileUser")
self.profileImageView.layer.cornerRadius = self.profileImageView.frame.size.width / 2
self.profileImageView.clipsToBounds = true
要添加阴影:
self.profileImageView.layer.masksToBounds = NO;
self.profileImageView.layer.cornerRadius = 8;
self.profileImageView.shadowOffset = CGSizeMake(5.0, 5.0);
self.profileImageView.shadowRadius = 5;
self.profileImageView.shadowOpacity = 0.5;
试一下这个,对我有用。
self.profileImageView.layer.cornerRadius = self.profileImageView.frame.size.width / 2
self.profileImageView.clipsToBounds = true
我厌倦了为每个UIView编写设置半径和边框的蒙版。因此,我为UIView创建了以下扩展。应该适用于每个UIView子类,尽管我没有进行测试。当然,可以将扩展缩小到您使用的特定视图。
extension UIView {
func setRadius(radius: CGFloat? = nil) {
self.layer.cornerRadius = radius ?? self.frame.width / 2;
self.layer.masksToBounds = true;
}
}
如果您没有传递任何特定值,它将默认为视图的一半宽度。UIImageView
都圆角化,你可以将此代码复制到您的项目中,不要忘记勾选剪切至边界
并将其值设置为true
。import UIKit
@IBDesignable
extension UIImageView
{
private struct AssociatedKey
{
static var rounded = "UIImageView.rounded"
}
@IBInspectable var rounded: Bool
{
get
{
if let rounded = objc_getAssociatedObject(self, &AssociatedKey.rounded) as? Bool
{
return rounded
}
else
{
return false
}
}
set
{
objc_setAssociatedObject(self, &AssociatedKey.rounded, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
layer.cornerRadius = CGFloat(newValue ? 1.0 : 0.0)*min(bounds.width, bounds.height)/2
}
}
}
self.clipsToBounds = true
,这样就不用担心在界面构建器中设置它了。 - Quinnclass RoundCorner: UIView {
override func draw(_ rect: CGRect) {
self.layer.cornerRadius = 10 // change this number to get the corners you want
self.layer.masksToBounds = true
}
}
yourUIImage.layer.cornerRadius = 10 // Set it how you prefer
yourUIImage.layer.masksToBounds = true
如果您使用一个相当长的矩形图片,例如在您的应用程序或其他地方的特色内容部分,请确保内容模式(Content Mode)
设置为缩放以适应(Scale To Fit)
,否则边角会被某种方式圆化,但会被切断得很丑陋,并不是完美的圆角,而是一个圆角,然后是一个尖锐的剪切。
在“Identity Inspector”中的“User Defined Runtime Attributes”部分设置layer.cornerRadius = 10,即使是像表格单元格这样的可重复元素也可以生效。
self.headerImageView.layer.cornerRadius = self.headerImageView.frame.size.width / 2