【问题标题】:How to add a custom view from a xib to a UIScrollView? [duplicate]如何将自定义视图从 xib 添加到 UIScrollView? [复制]
【发布时间】:2019-11-08 14:30:36
【问题描述】:

问题

我正在尝试将自定义视图从 xib 添加到 UIScrollView。

我将 UIScrollView 添加到情节提要中的空 ViewController 中。我还为安全区域添加了前导、尾随、顶部、底部的 4 个约束,并将它们都设置为等于 0。

现在在代码中,我想将自定义视图“EquipmentInfoView”添加到现有的 UIScrollView

class EquipmentInfoVC: UIViewController {
    @IBOutlet var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()

        equipmentInfoView = EquipmentInfoView.instantiate()
        scrollView.addSubview(equipmentInfoView)
    }
}

而且它不起作用,因为 ScrollView 不滚动。我应该怎么做呢?

这里是自定义视图“EquipmentInfoView”

class EquipmentInfoView: UIView {

    @IBOutlet var nameTextView: UITextView!
    @IBOutlet var descriptionTextView: UITextView!
    @IBOutlet var equipmentImageView: UIImageView!

    static func instantiate() -> EquipmentInfoView {
        let view: EquipmentInfoView = initFromNib()
        return view
    }
}

补充说明

我知道这不是从 xib 创建自定义视图的常规方法。但是,这样我不必将文件的所有者设置为“EquipmentInfoView”,而是将视图的自定义类设置为“EquipmentInfoView”。 (当我进行单元测试时,将文件的所有者设置为“EquipmentInfoView”会给我 EXC_BAD_ACCESS)

为了清楚起见,这就是我将此视图添加到普通(非滚动)视图的方式:

equipmentInfoView = EquipmentInfoView.instantiate()
mainView.addSubview(equipmentInfoView)
equipmentInfoView.frame = mainView.bounds
equipmentInfoView.autoresizingMask = [.flexibleHeight, .flexibleWidth]

【问题讨论】:

    标签: swift uiscrollview xib nib


    【解决方案1】:

    您可能缺少 scrollView 的 contentSize

    class EquipmentInfoVC: UIViewController {
        @IBOutlet var scrollView: UIScrollView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            equipmentInfoView = EquipmentInfoView.instantiate()
            scrollView.contentSize = equipmentInfoView.frame.size
            scrollView.addSubview(equipmentInfoView)
        }
    }
    

    【讨论】:

    • 感谢您的回答,但它并没有解决问题
    猜你喜欢
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多