如何制作动态添加的可见故事板项目?

时间:2016-12-25 16:37:23

标签: ios xcode

我是iOS的新秀

我需要制作动态添加的可见项目。我动态制作的所有设置只要启动模拟器就可以看到。

在我当前的ViewController中,我动态添加了背景和标签

这是我的故事板:

enter image description here

但是这里实际上必须是:

enter image description here

我知道获得它的方法之一是将这个注释@IBDesignable置于课堂之上。我试过了,但是没有。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

一种方法是:使您的视图IBDesignable和实现prepareForInterfaceBuilder以根据需要设计视图。

(但是,我认为不要做你想做的事情。“动态”意味着“在运行时”。故事板不是运行时。你的应用程序会根据需要显示应用程序运行,所以你没有问题。故事板不需要人为地模拟同样的事情。故事板是为你的设计的静态部分,以图形方式构建;代码是为你的设计的动态部分,用代码构造。没有必要让前者完成后者的工作。)

答案 1 :(得分:0)

最终我找到了如何实现结果的方法

如果您需要显示视图,则需要将此视图创建为自定义。

例如背景:

创建自定义视图类GradientView

import UIKit

@IBDesignable class GradientView: UIView {

let backgroundGreyColor = UIColor.lightGray.cgColor
let backgroundLightGreyColor = UIColor.green.cgColor

var gradientBackground: UIColor {
    set {
        let gradientLayer = CAGradientLayer()
        gradientLayer.frame = bounds
        gradientLayer.colors = [backgroundGreyColor, backgroundLightGreyColor, backgroundGreyColor]
        gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
        gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5)

        UIGraphicsBeginImageContext(gradientLayer.bounds.size)
        gradientLayer.render(in: UIGraphicsGetCurrentContext()!)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        backgroundColor = UIColor(patternImage: image!)
    }
    get {
        return backgroundColor!
    }
}
}

不要忘记放置注释@IBDesignable

创建自定义视图:

enter image description here

将其划到全屏,不要忘记分配自定义视图:

enter image description here

就是这样!随意问一下