Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Объекты очищаются при добавлении subLayer в UIView

Автор вопроса: madmacОтветов: 1

Я использую пользовательский класс UIView, в котором есть текстовые поля и метки, любезно предоставленные Storyboard. Когда класс добавляет подслой внутри класса, содержащиеся объекты в представлении исчезают, становятся прозрачными или, возможно, приобретают тот же цвет, что и фон UIView. Есть ли свойство, которое можно установить, или метод, который можно использовать, чтобы гарантировать, что объекты остаются видимыми?

Заранее спасибо!

Вот мой код:

class viewBorder: UIView {

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func drawRect(rect: CGRect) {
        super.drawRect(rect)

        // Create a rect with only 1x rounded corner
        let rectPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: UIRectCorner.TopLeft, cornerRadii: CGSize(width: 21.0, height: 21.0))
        let rectLayer = CAShapeLayer()
        rectLayer.shadowOffset = CGSize(width: -1.5, height: -1.5)
        rectLayer.shadowOpacity = 0.6
        rectLayer.path = rectPath.CGPath
        rectLayer.fillColor = tintColor.CGColor
        self.layer.addSublayer(rectLayer)
    }
}

iosswiftuiviewcashapelayerswift2

Ответы

Ответ 1 · рейтинг 2 · Bannings

Попробуй это:

override func drawRect(rect: CGRect) {
    super.drawRect(rect)

    // Create a rect with only 1x rounded corner
    let rectPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: UIRectCorner.TopLeft, cornerRadii: CGSize(width: 21.0, height: 21.0))
    let rectLayer = CAShapeLayer()
    rectLayer.shadowOffset = CGSize(width: -1.5, height: -1.5)
    rectLayer.shadowOpacity = 0.6
    rectLayer.path = rectPath.CGPath
    rectLayer.fillColor = tintColor.CGColor
    rectLayer.zPosition = -1 // Added
    self.layer.addSublayer(rectLayer)
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы