如何在Swift iOS Playground上制作带圆角的UIImageView? 里面需要填充颜色。
答案 0 :(得分:156)
let imageView = UIImageView(frame: CGRectMake(0, 0, 100, 100))
imageView.backgroundColor = UIColor.redColor()
imageView.layer.cornerRadius = 8.0
imageView.clipsToBounds = true
结果:
答案 1 :(得分:24)
对于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;
答案 2 :(得分:18)
试试这个,它对我有用。
self.profileImageView.layer.cornerRadius = self.profileImageView.frame.size.width / 2
self.profileImageView.clipsToBounds = true
答案 3 :(得分:13)
我厌倦了为每个UIView编写设置半径和掩码绑定。所以我为UIView做了以下扩展。应该适用于每个UIView子类,尽管我还没有测试过它。对于您当然使用的特定视图,可以缩小扩展名。
extension UIView {
func setRadius(radius: CGFloat? = nil) {
self.layer.cornerRadius = radius ?? self.frame.width / 2;
self.layer.masksToBounds = true;
}
}
如果您没有将任何特定值传递给它,它将默认为视图的半宽。
答案 4 :(得分:5)
答案 5 :(得分:3)
如果您希望舍入每个UIImageView
,可以将这段代码复制到您的项目中,而不必忘记选中clip to bounds
并将其值设置为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
}
}
}
答案 6 :(得分:1)
设置 layer.cornerRadius = 10 甚至适用于表单元格之类的可重复元素。
答案 7 :(得分:1)
Swift 5.0:
我个人的喜好是为这样的特定更改提供一个额外的快速文件。然后我要做的是创建一个类,例如“ RoundCorner”是我想在这种情况下更改的View元素的元素的子类。然后,我将覆盖各个设置。
$Link
此后,您只需选择要对其进行更改的元素,并将自定义类设置为我们之前创建的类。