无法使用存储的属性'leadingConstraint'覆盖,在其定义模块xcode 10外部覆盖非开放式var

时间:2019-01-16 11:46:26

标签: swift xcode

我遇到这个奇怪的错误。我的项目运行正常,突然间我收到了这些错误。 Xcode指示的错误:

  

无法使用存储的属性“ leadingConstraint”覆盖

     

在其定义模块之外覆盖非开放式var

我在UITableViewCell中定义了一个约束变量,在该变量上给出错误。

我尝试了

  • 清理构建文件夹。

  • 重新启动Xcode,但它仍然给我 该错误。

错误 enter image description here

单元格

import UIKit
class ReceiverChatImageCell: UITableViewCell {

    let bubbleBackgroundView: UIView = {
        let v = UIView()
        v.backgroundColor = UIColor.darkGray
        v.layer.cornerRadius = 5
        v.layer.masksToBounds = true
        v.translatesAutoresizingMaskIntoConstraints = false
        return v
    }()

    public let chatImage: UIImageView = {
        let v = UIImageView()
        v.contentMode = .scaleAspectFill
        v.translatesAutoresizingMaskIntoConstraints = false
        v.clipsToBounds = true
        return v
    }()

    var maxMessageLength: CGFloat = 250
    var leadingConstraint: NSLayoutConstraint?

    var chatMessage: ChatModel! {
        didSet {
            profileImageView.loadImage(string: chatMessage.imageUrl)
            chatImage.loadImage(string: chatMessage.chatImageUrl)
        }
    }

    public let profileImageView: UIImageView = {
        let v = UIImageView()
        v.image = #imageLiteral(resourceName: "babs")
        v.translatesAutoresizingMaskIntoConstraints = false
        v.contentMode = .scaleAspectFill
        v.clipsToBounds = true
        v.layer.cornerRadius = 20
        return v
    }()

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        commonInit()
    }

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

    func commonInit(){
        backgroundColor = .clear


        addSubview(profileImageView)
        addSubview(bubbleBackgroundView)
        addSubview(chatImage)
        let available: CGFloat = UIScreen.main.bounds.width - 100
        if maxMessageLength  > available{
            maxMessageLength = available  -  50
            print("Available Space \(maxMessageLength)")
        }

        // lets set up some constraints for our image
        let constraints = [

            profileImageView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 0),
            profileImageView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -8),
            profileImageView.widthAnchor.constraint(equalToConstant: 40),
            profileImageView.heightAnchor.constraint(equalToConstant: 40),

            chatImage.topAnchor.constraint(equalTo: topAnchor, constant: 8),
            chatImage.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -24),
            chatImage.widthAnchor.constraint(lessThanOrEqualToConstant: maxMessageLength),
            chatImage.heightAnchor.constraint(lessThanOrEqualToConstant: 250),

            bubbleBackgroundView.topAnchor.constraint(equalTo: chatImage.topAnchor, constant: -8),
            bubbleBackgroundView.leadingAnchor.constraint(equalTo: chatImage.leadingAnchor, constant: -16),
            bubbleBackgroundView.bottomAnchor.constraint(equalTo: chatImage.bottomAnchor, constant: 8),
            bubbleBackgroundView.trailingAnchor.constraint(equalTo: chatImage.trailingAnchor, constant: 16),
            ]
        NSLayoutConstraint.activate(constraints)

        leadingConstraint = chatImage.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 60)
        leadingConstraint?.isActive = true
    }
}

我没有在单元格外部使用此变量。

enter image description here

我该如何解决这个问题?

0 个答案:

没有答案