     
     private var isFinishedPrepare = false
     
-    private var isLoadingFromNib: Bool {
-        return type(of: self).isLoadingFromNib
-    }
-    
-    // Subviews in which UITableViewCell moves and sets properties. prepareForInterfaceBuilder() later copies those properties into our subviews and dump these subviews. This strategey prevents UITableViewCell from moving the subviews out of our nested layout.
-    private let dumpTextLabel = UILabel()
-    private let dumpDetailTextLabel = UILabel()
-    private let dumpImageView = UIImageView()
-    
     @IBOutlet open override var textLabel: UILabel? {
         get {
             return isFinishedPrepare

    }
    
    /// super.detailTextLabel returns nil even though super.textLabel returns the label, so resorting to subviews:
    private var inheritedDetailTextLabel: UILabel? {
        let superLabels = super.contentView.subviews.filter { $0 is UILabel } as! [UILabel]
        let superLabel: UILabel? = super.detailTextLabel
            ?? (
                superLabels.count == 2
                    ? superLabels[1]
                    : nil
        )
        return superLabel
    }
    
    // #endif // TARGET_INTERFACE_BUILDER
    
    open override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()
        if let destination = overridingTextLabel,
            let source = super.textLabel

        IBLog.write("offsetSubviewFramesIfNeeded() {", indent: 1)
        offsetCount += 1
        IBLog.write("offsetCount = \(offsetCount)")
        if offsetCount == changeFrameOffsetCount {
            [textLabel, detailTextLabel, imageView].compactMap { $0 }.forEach { subview in
                let converted = subview.convert(CGPoint.zero, to: self)
                if converted.x > 0
                    && converted.y > 0
                {
                    IBLog.write("subview: \(subview.shortDescription) {", indent: 1)
                    IBLog.write("old origin: \(subview.frame.origin)")
                    subview.frame.origin = converted
                    IBLog.write("new origin: \(subview.frame.origin)")
                    IBLog.write("}", indent: -1)
                }
            }
            isOffsetSubviewFramesFinished = true
        }
        IBLog.write("}", indent: -1)
    }
    
    #endif // TARGET_INTERFACE_BUILDER
    
