繁体   English   中英

如何使用相同的功能创建多个UIView

[英]How to create multiple UIViews using the same function

我想创建多个UIView,可以使用一个函数来复制这些UIView。 我有一个放置在故事板上的UIView,并通过IBOutlet连接到我的班级:

@IBOutlet weak var contentView: UIView!

我有一个函数可以将xib加载到我的UIView中:

func createView(layoutConstant: CGFloat) {
        if let customView = NSBundle.mainBundle().loadNibNamed("TestView", owner: self, options: nil).first as? TestView {
            contentViewTopLayoutConstraint.constant = layoutConstant
            contentView.addSubview(customView)
        }
    }

我现在正在尝试将其中两个添加到我的视图中,但是只显示一个:

createView(0)
createView(70)

有任何想法吗?

因为所有这些视图的框架将具有相同的大小。 所有视图的Origin(x,y)都相同,因此它们彼此重叠,并且您只能看到最上面的一个视图。

在您的代码示例中,您似乎只在要在其中放置两个新视图的contentView上设置布局约束。 您需要做的是在与您的父视图(即contentView相关的两个视图中设置布局约束。

基本上,将布局约束添加到customView视图。

它非常简单..通过创建uiview并将其添加到数组中来迭代循环,并通过使用数组索引获取它们来定制您的特定视图。

快乐的代码..

我认为这两个视图都被添加了,尽管它们恰好位于同一位置,所以看起来只有一个! 一种快速而肮脏的方法来验证是否将使用此行更新您的createView方法:

contentView.frame.origin.y = layoutConstant

基本上,您的contentViewTopLayoutConstraint未连接到正在创建的视图,因此设置其constant值不会有任何影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM