UIlabel layer.cornerRadius не работает в iOS 7.1

В настоящее время я смотрю на UILabel со свойством addMessageLabel.layer.cornerRadius = 5.0f; На устройстве с установленной iOS 7.0 он имеет закругленные углы. На устройстве с установленным iOS 7.1 он не имеет закругленных углов.

Это просто ошибка с iOS 7.1?

Ответ 1

Установите для свойства clipsToBounds значение true

addMessageLabel.clipsToBounds = true

Ответ 2

Я думаю, что лучший способ задать угловой радиус:

enter image description here

и убедитесь, что отмечен "Подвижность клипов":

enter image description here

Проверка "Подвижность клипа" равна коду addMessageLabel.clipsToBounds = YES;.

Ответ 3

Добавьте две приведенные ниже строки и проверьте их.

[[addMessageLabel layer] setCornerRadius:5.0f];
[[addMessageLabel layer] setMasksToBounds:YES];

ИЛИ

[addMessageLabel setClipsToBounds:YES];

Ответ 4

Моя проблема была немного иной.

Пока я делал btn.clipsToBounds = true

Я не настраивал:

btn.layer.cornerRadius = 20

Потому что у меня были разные размеры экрана. Вместо этого я выполнил этот ответ и сделал:

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

Он не работал, потому что я забыл добавить super.layoutSubviews(). Правильный код:

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

Ответ 5

Я попробовал следующее, и я получил успешный выход.

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

Есть ли что-то еще, что останавливает вас?

Ответ 6

 //works perfect in Swift 2.0 for a circular or round image          


@IBOutlet var theImage: UIImageView!
        override func viewDidLoad() {
            super.viewDidLoad()
    //Make sure the width and height are same
            self.theImage.layer.cornerRadius = self.theImage.frame.size.width / 2
            self.theImage.layer.borderWidth = 2.0
            self.theImage.layer.borderColor = UIColor.whiteColor().CGColor
            self.theImage.clipsToBounds = true

        }

Ответ 7

yourlabelname.layer.cornerRadius = yourlabelname.frame.size.width/2;
[yourlabelname setClipsToBounds:YES];

Убедитесь, что вы проверяете соответствующую цель развертывания.

Ответ 8

Добавьте следующий код в качестве расширения для 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
        }
    }
}

После этого вы получите следующие атрибуты в самом конструкторе интерфейсов.!

enter image description here