Ios 如何使动态添加的故事板项目可见?

Ios 如何使动态添加的故事板项目可见?,ios,xcode,Ios,Xcode,我是iOS的新手 我需要使动态添加的项目可见。只要启动模拟器,我就可以看到动态设置 在我当前的ViewController中,我动态添加了背景和标签 这是我的故事板: 但实际情况必须是: 我知道其中一种方法是将@IBDesignable注释放在类的顶部。我试过了,但没有 我做错了什么 一种方法是:使视图可设计,并根据需要实现视图设计 然而,在我看来,最好不要做你想做的事情。动态意味着在运行时。故事板不是运行时的。当应用程序运行时,您的应用程序将按需要显示,因此您没有问题。故事板不需要人为地模拟同

我是iOS的新手

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

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

这是我的故事板:


但实际情况必须是:

我知道其中一种方法是将@IBDesignable注释放在类的顶部。我试过了,但没有


我做错了什么

一种方法是:使视图可设计,并根据需要实现视图设计


然而,在我看来,最好不要做你想做的事情。动态意味着在运行时。故事板不是运行时的。当应用程序运行时,您的应用程序将按需要显示,因此您没有问题。故事板不需要人为地模拟同样的事情。故事板用于设计的静态部分,以图形方式构建;代码用于设计的动态部分,用代码构建。没有必要让前者做后者的工作。

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

如果需要视图可见,则需要将此视图创建为自定义视图

例如背景:

创建自定义视图类GradientView

别忘了放注释@IBDesignable

创建自定义视图:

将其拖至全屏,不要忘记指定的自定义视图:


就这样!请随意提问

,但在这里,它实际上是怎样的,为什么一定要这样?如果应用程序在运行时正常工作,你会在意故事板上出现的内容吗?我不明白为什么这个问题会被隐藏起来?这是一个绝对正常的问题,而且它还有答案。我相信它可以帮助某人。。。为什么这个有负号?
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!
    }
}
}