UIlabel layer.cornerRadius not working in iOS 7.1

后端 未结 8 1880
时光说笑
时光说笑 2021-01-30 04:40

I\'m currently looking at a UILabel with the property addMessageLabel.layer.cornerRadius = 5.0f; On a device with iOS 7.0 installed, it has rounded corners. On a de

相关标签:
8条回答
  • 2021-01-30 05:09

    Try the followings,

    [[addMessageLabel layer] setCornerRadius:5.0f];
    [[addMessageLabel layer] setMasksToBounds:YES];
    
    //or
    [addMessageLabel setClipsToBounds:YES];
    

    Swift

    addMessageLable.layer.cornerRadius = 5.0
    addMessageLable.layer.masksToBounds = true
    
    //or
    addMessageLable.layer.clipsToBounds = true
    
    0 讨论(0)
  • 2021-01-30 05:11

    Add the Following Code as extension for UIView

    //// Story board Extra Feature for create border radius, border width and border Color
    extension UIView {
        /// corner radius
        @IBInspectable var borderColor: UIColor? {
            set {
                layer.borderColor = newValue!.cgColor
            }
            get {
                if let color = layer.borderColor {
                    return UIColor(cgColor: color)
                } else {
                    return nil
                }
            }
        }
        @IBInspectable var borderWidth: CGFloat {
            set {
                layer.borderWidth = newValue
            }
            get {
                return layer.borderWidth
            }
        }
        @IBInspectable var cornerRadius: CGFloat {
            set {
                layer.cornerRadius = newValue
                clipsToBounds = newValue > 0
            }
            get {
                return layer.cornerRadius
            }
        }
    }
    

    After that you will get the following attributes in interface builder itself.!

    0 讨论(0)
  • 2021-01-30 05:19

    Set the property clipsToBounds to true

    addMessageLabel.clipsToBounds = true
    
    0 讨论(0)
  • 2021-01-30 05:19

    I think the best way to set corner radius is:

    enter image description here

    and be sure the "Clip Subviews" is checked:

    enter image description here

    Checking "Clip Subviews" is equal to the code addMessageLabel.clipsToBounds = YES;.

    0 讨论(0)
  • 2021-01-30 05:19

    My issue was a bit different.

    While I did do btn.clipsToBounds = true

    I wasn't setting doing:

    btn.layer.cornerRadius = 20
    

    Because I had different screen sizes. Instead I followed this answer and did:

    override func layoutSubviews() {
        seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
    }
    

    It wasn't working because I forgot to add super.layoutSubviews(). The correct code is:

    override func layoutSubviews() {
        super.layoutSubviews()
        seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
    }
    
    0 讨论(0)
  • 2021-01-30 05:24

    I have tried the below one and i got an successful output.

    yourlabelname.layer.cornerRadius = 10.0f;
    [yourlabelname setClipsToBounds:YES];
    

    Is there something else which is stopping you?

    0 讨论(0)
提交回复
热议问题