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