如何使用相同的函数创建多个UIViews

时间:2016-05-16 08:51:29

标签: ios swift

我想创建多个可以使用单个函数重现的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)

有什么想法吗?

4 个答案:

答案 0 :(得分:0)

因为所有这些视图的帧都具有相同的大小。对于所有视图,Origin(x,y)都是相同的,因此它们彼此重叠,您只能看到顶部的一个视图。

答案 1 :(得分:0)

在您的代码示例中,您似乎只在contentView上设置了一个布局约束,您将两个新视图置于其中。你需要做的是设置你的内部相对于他们的超级视图的两个视图的布局约束,即contentView

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

答案 2 :(得分:0)

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

快乐代码..

答案 3 :(得分:0)

我认为这两个观点都被添加了,虽然它们碰巧在同一个地方,所以它看起来只有一个!一种快速而又脏的方法来验证是否会使用以下行更新createView方法:

contentView.frame.origin.y = layoutConstant

基本上,您的contentViewTopLayoutConstraint未与您正在创建的观看次数相关联,因此设置其constant值不会产生任何影响。