         IBLog.write("offsetSubviewFramesIfNeeded() {", indent: 1)
         offsetCount += 1
         IBLog.write("offsetCount = \(offsetCount)")
-        [textLabel, detailTextLabel, imageView].compactMap { $0 }.forEach { subview in
-            let converted = subview.convert(CGPoint.zero, to: self)
-            if offsetCount == changeFrameOffsetCount
-                && 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)
-            }
+        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
     

        get {
            return isFinishedPrepare
                ? overridingDetailTextLabel
                : inheritedDetailTextLabel ?? UILabel()
        }
        set {
            if overridingDetailTextLabel == nil {

    
    private var isFinishedPrepare = false
    
    @IBOutlet open override var textLabel: UILabel? {
        get {
            return isFinishedPrepare
