我试图使用ViewController中的以下代码从另一个类访问MyCustomView.敏捷的

var view = MyCustomView(frame: CGRectZero)

viewDidLoad法.问题是该视图没有在模拟器中初始化.

我已经在故事板中为当前的ViewController设置了类.

class MyCustomView: UIView {
    var label: UILabel = UILabel()
    var myNames = ["dipen","laxu","anis","aakash","santosh","raaa","ggdds","house"]

    override init(){
        super.init()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.addCustomView()
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    func addCustomView() {
        label.frame = CGRectMake(50, 10, 200, 100)
        label.backgroundColor=UIColor.whiteColor()
        label.textAlignment = NSTextAlignment.Center
        label.text = "test label"
        label.hidden=true
        self.addSubview(label)

        var btn: UIButton = UIButton()
        btn.frame=CGRectMake(50, 120, 200, 100)
        btn.backgroundColor=UIColor.redColor()
        btn.setTitle("button", forState: UIControlState.Normal)
        btn.addTarget(self, action: "changeLabel", forControlEvents: UIControlEvents.TouchUpInside)
        self.addSubview(btn)

        var txtField : UITextField = UITextField()
        txtField.frame = CGRectMake(50, 250, 100,50)
        txtField.backgroundColor = UIColor.grayColor()
        self.addSubview(txtField)
    }

推荐答案

CGRectZero常数等于位置(0,0)处宽度和高度为零的矩形.如果使用AutoLayout,这是可以使用的,而且实际上是首选的,因为AutoLayout将正确放置视图.

但是,我希望您不使用自动布局.因此,最简单的解决方案是通过显式提供框架来指定自定义视图的大小:

customView = MyCustomView(frame: CGRect(x: 0, y: 0, width: 200, height: 50))
self.view.addSubview(customView)

请注意,还需要使用addSubview,否则视图不会添加到视图层次结构中.

Swift相关问答推荐

Vapor Swift 如何配置客户端连接超时

在 Swift 中,如何查看 Process() 传递给 shell 的字符串?

Apple 的自然语言 API 返回意外结果

Swift 中构造的泛型类型的扩展

如何在 Swift 中访问命令行参数?

SwiftUI HStack 以等间距填充整个宽度

如何在 SwiftUI 中分配可选的 Binding 参数?

如何在 SwiftUI 中删除列表的左右填充?

如何在 SwiftUI 中的一个视图上显示两个alert ?

如何在 SwiftUI Segmented Picker 中更改选定的段 colored颜色

在 Swift 中访问类中的静态变量

在 SwiftUI 中有条件地使用视图

如何避免 SwiftUI 中的嵌套导航栏?

如何在 SwiftUI 中以横向模式预览设备?

在现有的 UIKit 应用程序中包含 SwiftUI 视图

Xcode 一直显示:-1: SWIFT_VERSION '5.0' is unsupported, 支持的版本是:3.0, 4.0, 4.2.任何解决方案?

Xcode 和 Swift - 没有标题栏但有关闭、最小化和调整大小按钮的窗口

Swift :反斜杠点“\”是什么意思?意思是?

UIImageJPEGRepresentation 已被实例方法 UIImage.jpegData(compressionQuality:) 替换

设置 statusbarStyle(在 iOS 9.0 中已弃用)