How do I make an UIImage/-View with rounded corners CGRect (Swift)

前端 未结 8 2501
你的背包
你的背包 2020-12-13 01:47

How do I make a UIImageView with rounded corners on a Swift iOS Playground?
Inside it needs to be filled with a color.

相关标签:
8条回答
  • 2020-12-13 02:02

    I was tired of writing set radius and mask to bound for each UIView. So I made the following extenstion for UIView. Should work for every UIView subclass, though I have not tested it. The extension can be narrowed down for specific Views you use of course.

    extension UIView {      
        func setRadius(radius: CGFloat? = nil) {
            self.layer.cornerRadius = radius ?? self.frame.width / 2;
            self.layer.masksToBounds = true;
        }
    }
    

    It will default to the view's half width if you don't pass it any specific value.

    0 讨论(0)
  • 2020-12-13 02:06

    Swift 5.0:

    My personal preference is to have an extra swift file for specific changes like this one. What I do is then create a class e.g. "RoundCorner" which is a subclass of the element I want to change in this case a View element. And then I am overriding the individual settings.

    class RoundCorner: UIView {
    override func draw(_ rect: CGRect) {
        self.layer.cornerRadius = 10 // change this number to get the corners you want
        self.layer.masksToBounds = true
        }
    }
    

    After that, you only have to select the element you want this changes on, and set the custom class to the class we created earlier.

    Look at the screenshot here

    0 讨论(0)
  • 2020-12-13 02:10

    Swift 3.0, 4.0

    If you want to use the storyboard. I applied this and make sure that "Clip to bounds" is enable.

    0 讨论(0)
  • 2020-12-13 02:11
    let imageView = UIImageView(frame: CGRectMake(0, 0, 100, 100))
    imageView.backgroundColor = UIColor.redColor()
    imageView.layer.cornerRadius = 8.0
    imageView.clipsToBounds = true
    

    Result:

    enter image description here

    0 讨论(0)
  • 2020-12-13 02:12

    For rounded circle image frame in swift, what it worked for me was:

        self.profileImageView.image =  UIImage(named:"profileUser")
        self.profileImageView.layer.cornerRadius = self.profileImageView.frame.size.width / 2
        self.profileImageView.clipsToBounds = true
    

    And for adding a shadow:

        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;
    
    0 讨论(0)
  • 2020-12-13 02:13

    Try this, it worked for me.

    self.profileImageView.layer.cornerRadius = self.profileImageView.frame.size.width / 2
    self.profileImageView.clipsToBounds = true
    
    0 讨论(0)
提交回复
热议问题