当前位置: 首页 > 面试题库 >

如何以编程方式快速创建具有控件文本字段,按钮等的自定义视图

袁泰平
2023-03-14
问题内容

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

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否则您的视图不会添加到视图层次结构中。



 类似资料:
  • 问题内容: 我想以编程方式将bean定义添加到应用程序上下文中,但是该定义的某些属性是该上下文中的其他bean(我知道它们的名称)。我该怎么做才能注入那些属性? 例如: 我正在使用Spring 3.0。 问题答案: 用途:

  • 问题内容: 是否有免费的库可根据图像序列创建MPEG(或任何其他简单的视频格式)? 它也必须在Linux上运行,并且最好具有Python绑定。 问题答案: 我知道有一个mencoder(是mplayer项目的一部分)和ffmpeg,它们都可以做到这一点。

  • 问题内容: 这里的简单问题。我有一个UIButton,currencySelector,并且我想以编程方式更改文本。这是我所拥有的: Xcode给我错误“期望的声明”。我在做什么错,如何更改按钮的文本? 问题答案: 在Swift 3、4、5中: 除此以外: 还必须为声明。

  • 问题内容: 我正在尝试以编程方式创建UIImage视图,我有一个新视图,并且尝试这样做 这行不通,因为我不知道 您 在第二行中应该看到的是什么。 问题: 如何通过编码而不是在情节提要中使UIImageView出现在屏幕上 问题答案: 首先,您从图片文件中创建一个,然后从中创建一个: 最后,您需要给出一个框架并将其添加到视图中以使其可见:

  • 链接到我下面的示例: 文档页面:https://www.jetbrains.org/intellij/sdk/docs/tutorials/code_inspections.html 示例项目:https://github.com/jetbrains/intellij-sdk-docs/tree/master/code_samples/comparing_references_inspection

  • 问题内容: 我知道我可以使用Java中的 api 以编程方式创建文件,如下所示: 但是是否有任何 API 可以构建树?(例如Dom之类的api) 我需要这样的东西: 和: 提前致谢。 问题答案: 由于XSLT也是XML,因此您可以简单地使用相同的策略: 等等… 但这不是很优雅。您应该改用库或框架,但应该很容易找到一个谷歌浏览器。