ios - 如何以编程方式快速将 subview 添加到自定义 View

标签 ios swift

我想在我的自定义 View 中添加一个 subview (UIButton)。但是,当我在创建的函数中执行 addSubview() 时,它不会添加 UIButton,即使我调用 setNeedsLayout() 也是如此。我在 ViewController 中调用 addButton()

class PlayingField: UIView {

    var buttons: [UIButton] = []

    func addButton() {
        let button = UIButton()
        addSubview(button)
        buttons.append(button)
        setNeedsLayout()
        layoutIfNeeded()
    }

    override func layoutSubviews() {
        for i in buttons.indices {
            buttons[i].frame = CGRect(x: 50, y: 50, width: 100, height: 100)
            buttons[i].backgroundColor = UIColor.green
        }
    }
}

最佳答案

您确定能够绘制您的CustomView吗?您在此 View 中看到任何其他组件吗?

因为如果您有一个 xib 文件绑定(bind)到此文件,那么您可能需要加载 nib。您可以在这里找到如何操作的答案:Load UIView from nib

如果没有,您可能会遇到 layoutSubviews 未被调用的问题,这就是您根本没有添加 subview 的原因。

关于ios - 如何以编程方式快速将 subview 添加到自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57376963/

相关文章:

ios - 如何从苹果支付中提取账单地址

ios - 放下CupertinoTabBar

html - iPhone 上的 Safari 在 :activate 之后不显示 <ul>

ios - UITextField 密码自动填充确认

iOS图表库为什么我的Bar/PieChart函数只有 "dataset"但没有 "xVals"

ios - 无法从 Swift 中的 Collection View 中访问核心数据对象

android - 支持 Web 和移动设备的单一 AngularJS 代码库

swift - 不推荐使用未标记的尾随闭包的向后匹配......有什么方法可以使其静音,而不是停止使用尾随闭包?

ios - 无法在 iOS 中播放 amr 音频文件

swift - 如何实现更新(_ :body:) on gestures in SwiftUI